From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p3DD1QFF022043 for ; Wed, 13 Apr 2011 15:01:26 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AucCAFadpU3U4xEKkWdsb2JhbACETaFJFAEBAQEJCwsHFCWIb6kwkTACgSeDTXgEiG+IaIkq X-IronPort-AV: E=Sophos;i="4.64,204,1301868000"; d="scan'208";a="80716090" Received: from moutng.kundenserver.de ([212.227.17.10]) by mail3-smtp-sop.national.inria.fr with ESMTP; 13 Apr 2011 15:01:19 +0200 Received: from office1.lan.sumadev.de (dslb-084-059-066-186.pools.arcor-ip.net [84.59.66.186]) by mrelayeu.kundenserver.de (node=mreu4) with ESMTP (Nemesis) id 0LkWsS-1PZYPi1Zvo-00aRl7; Wed, 13 Apr 2011 15:01:18 +0200 Received: from [192.168.5.106] (dslb-084-059-066-186.pools.arcor-ip.net [84.59.66.186]) by office1.lan.sumadev.de (Postfix) with ESMTPA id 0EB5A5F702; Wed, 13 Apr 2011 15:01:18 +0200 (CEST) From: Gerd Stolpmann To: Lucas Dixon Cc: caml-list@inria.fr In-Reply-To: <4DA51A28.1060709@inf.ed.ac.uk> References: <2054357367.219171.1300974318806.JavaMail.root@zmbs4.inria.fr> <4D8BD02D.1010505@inria.fr> <4DA51A28.1060709@inf.ed.ac.uk> Content-Type: text/plain; charset="UTF-8" Date: Wed, 13 Apr 2011 15:01:16 +0200 Message-ID: <1302699676.8429.1216.camel@thinkpad> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 7bit X-Provags-ID: V02:K0:k4a9xcRflDvgdkTtqOq3w6V+KhtpQcg8HS6B4nYWUaj nW4rhvc23DhOj2fFhlS3YQ2jgYG4phGIHHp3M72/VbkAsymBoA X1j18CJeiZUrWaBbwe4tT1M7Wm2yCstOUZqUzLcGRPPcuddZQc INj9zgyRmoUZObjHmeyzMgxGYjOyQF+DBAtEPBI8V66EmrEm+d mJEwtm/kVL27KGDRj0AIA== Subject: Re: [Caml-list] Efficient OCaml multicore -- roadmap? Am Dienstag, den 12.04.2011, 23:36 -0400 schrieb Lucas Dixon: > On 24/03/2011 19:13, Fabrice Le Fessant wrote: > > On 03/24/2011 02:45 PM, Alexy Khrabrov wrote: > >>> Where does the OCaml team stand on the multicore issues? A year > >>> or so ago, when there was a prototype parallel GC implementation, > >>> IIRC, Xavier said it has to be done right. So what are the > >>> official plans and the status of integrating what volunteers had > >>> done? > >>> > >>> WIth Scala having a robust actors model and AKKA kernel, and > >>> Clojure built around efficient shared memory concurrency with > >>> agents and references and STM, and Haskell also really parallel, > >>> OCaml is lacking behind. Furthermore, F# builds on strongly > >>> parallel .NET, overcoming granddaddy. With multicores common > >>> even in laptops and iPads, we need an efficient multicore OCaml! > >>> Due to the model different from Haskell or Scala and Clojure, now > >>> all on github, OCaml is both more stable and also is slower to > >>> advance -- what do folks think about this situation? How do you > >>> do shared memory parallelism now? > >>> > >>> Cheers, Alexy > >>> > > The PolyML implementation of SML has had a multi-core runtime, without > slowing down single-threaded programs for a few years now. How do you know that there are no slow-downs? Has it ever been tried to get rid of all additional measures that are necessary to support multicore? There might be e.g. architectural simplifications that would lead to speed-ups for the single-threaded case. > It also has a > concurrent garbage collector. The main problem currently seems to be > that a lot of garbage gets produced, and memory access speeds end up > being the main bottle-neck. But we do see 4-5x speed-up on 8 core > machines for large real-world applications (in SML, our real world means > a big formal proof development, or graph rewriting at the moment... but > there's more fun stuff possible: http://kidkarolis.github.com/PolyChrome/) > > Anyway, I suspect you'll run into some of the same issues as PolyML > encountered; there's a paper or two by David Matthews on this stuff; > (here's the first one I found: > http://portal.acm.org/citation.cfm?id=1708058&dl=ACM) and of course > there is the source code too: > http://polyml.svn.sourceforge.net/viewvc/polyml/ > > Good luck with the OCaml version; it's been wanted for a long time! :) You may be interested then in this pre-announcement I posted yesterday: http://blog.camlcity.org/blog/multicore1.html I was able to make good progress on my Netmulticore library, which - without changing anything in the compiler or runtime - allows it to write multicore-enabled shared memory programs following the "multi-runtime" design (which is emulated by forking subprocesses). More on this later. I'm working on a release. Gerd -- ------------------------------------------------------------ Gerd Stolpmann, Bad Nauheimer Str.3, 64289 Darmstadt,Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de Phone: +49-6151-153855 Fax: +49-6151-997714 ------------------------------------------------------------