From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p3D3aGuv025995 for ; Wed, 13 Apr 2011 05:36:16 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ap8AAEYZpU2B1w3NkWdsb2JhbACYXI0qFAEBAQEJCwsHFAUgxDSFbgQ X-IronPort-AV: E=Sophos;i="4.64,202,1301868000"; d="scan'208";a="92759611" Received: from nougat.ucs.ed.ac.uk ([129.215.13.205]) by mail4-smtp-sop.national.inria.fr with ESMTP; 13 Apr 2011 05:36:11 +0200 Received: from lmtp1.ucs.ed.ac.uk (lmtp1.ucs.ed.ac.uk [129.215.149.64]) by nougat.ucs.ed.ac.uk (8.13.8/8.13.4) with ESMTP id p3D3aAE8004676 for ; Wed, 13 Apr 2011 04:36:10 +0100 (BST) Received: from 207-237-107-105.c3-0.nyr-ubr1.nyr.ny.cable.rcn.com (207-237-107-105.c3-0.nyr-ubr1.nyr.ny.cable.rcn.com [207.237.107.105]) (authenticated user=ldixon mech=PLAIN bits=0) by lmtp1.ucs.ed.ac.uk (8.13.8/8.13.7) with ESMTP id p3D3a93H011803 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT) for ; Wed, 13 Apr 2011 04:36:10 +0100 (BST) Message-ID: <4DA51A28.1060709@inf.ed.ac.uk> Date: Tue, 12 Apr 2011 23:36:08 -0400 From: Lucas Dixon User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.15) Gecko/20110303 Thunderbird/3.1.9 MIME-Version: 1.0 To: caml-list@inria.fr References: <2054357367.219171.1300974318806.JavaMail.root@zmbs4.inria.fr> <4D8BD02D.1010505@inria.fr> In-Reply-To: <4D8BD02D.1010505@inria.fr> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Edinburgh-Scanned: at nougat.ucs.ed.ac.uk with MIMEDefang 2.60, Sophie, Sophos Anti-Virus, Clam AntiVirus X-Scanned-By: MIMEDefang 2.60 on 129.215.13.205 X-Scanned-By: MIMEDefang 2.52 on 129.215.149.64 Content-Disposition: inline Subject: Re: [Caml-list] Efficient OCaml multicore -- roadmap? 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. 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! :) best, lucas -- The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.