From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by sympa.inria.fr (Postfix) with ESMTPS id 0A5757ED26 for ; Fri, 8 Jun 2012 10:58:27 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AowCAKy90U9QDPJ8lGdsb2JhbABFtHgBAQEBCQsJCRQDJIIZAQUyAQVAEQshFg8JAwIBAgFFEwgBARCHewe5KYsmgmeDGQOVHoEShEGGfYYN X-IronPort-AV: E=Sophos;i="4.75,737,1330902000"; d="scan'208";a="147001358" Received: from smtp02.smtpout.orange.fr (HELO smtp.smtpout.orange.fr) ([80.12.242.124]) by mail4-smtp-sop.national.inria.fr with ESMTP; 08 Jun 2012 10:58:26 +0200 Received: from god.stelix.fr ([92.134.77.240]) by mwinf5d37 with ME id KkyR1j0095B4sMo03kyRhY; Fri, 08 Jun 2012 10:58:26 +0200 Received: from [10.31.1.2] by god.stelix.fr with esmtp (Exim 4.69) (envelope-from ) id 1Scv1V-0001CF-6I for caml-list@inria.fr; Fri, 08 Jun 2012 10:58:25 +0200 Message-ID: <4FD1BEAA.8000000@irit.fr> Date: Fri, 08 Jun 2012 10:58:18 +0200 From: jean-marc alliot User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1 MIME-Version: 1.0 To: caml-list@inria.fr References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Caml-list] Distributed computing libraries Le 06/06/2012 18:53, Thomas Braibant a écrit : > Hi list, > > There exists several different "distributed computing libraries" in OCaml: > > - Functory http://functory.lri.fr/ > - JoCaml http://jocaml.inria.fr/ (not really a library, though) > - Nproc https://github.com/MyLifeLabs/nproc > - OCaml for multicore http://www.algo-prog.info/ocmc/web/ (not a library either) > - Parmap https://gitorious.org/parmap/parmap > - Plasma Map/Reduce http://plasma.camlcity.org/plasma/ > > And I am pretty sure that this list is not exhaustive, looking at > http://caml.inria.fr/cgi-bin/hump.en.cgi?sort=0&browse=77 > > Maybe it would be interesting for the community if someone could sum > up the pros and cons of each of this "libraries", and maybe give some > information about their status (still in development, mature, etc)? > > With best regards, > Thomas Braibant > I was one of the two authors of the ocamlpvm interface. It works well and has been used for large "industrial" projects without any particular problems. These bindings are especially interesting when you need simple communications between different processes, and you also need to be able to launch processes by hand. The PVM bindings are stable and robust, PVM works for multi-core and network parallelism but PVM is also slowly dying. We have also been using lately the MPI bindings written by Xavier Leroy. The Ocaml bindings+MPI are an extremely efficient way to write parallel applications in the MPI paradigm. We compared it to a "home-made" shared memory system for exchanging objects between ocaml processes, and MPI is much faster (we were using MPICH2 MPI implementation), with, as a bonus, all the MPI goodies (such as transparent network parallelism). Well, that's a lesson to learn: leave parallelism implementation to the professionals. We had to add one or two functions to Xavier's bindings to do the job (the MPI bindings are not complete, and if I remember correctly the iprobe function was not implemented). The modification is trivial. If there are people interested, I could probably dig up the code. Jean-Marc