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 p2PJJAOH001040 for ; Fri, 25 Mar 2011 20:19:10 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmkDANTpjE3VhjEVd2dsb2JhbACERaEdFQwKCgkUJYhNqkqREYEng0t3BJBJBg X-IronPort-AV: E=Sophos;i="4.63,244,1299452400"; d="scan'208";a="91152112" Received: from ihsmtp01cons.lis.interhost.com ([213.134.49.21]) by mail4-smtp-sop.national.inria.fr with ESMTP; 25 Mar 2011 20:19:05 +0100 Received: from [192.168.1.64] ([178.166.9.223]) by ihsmtp01cons.lis.interhost.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 25 Mar 2011 19:19:04 +0000 Message-ID: <4D8CEAA4.2030403@inescporto.pt> Date: Fri, 25 Mar 2011 19:19:00 +0000 From: Hugo Ferreira User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 MIME-Version: 1.0 To: Martin Jambon CC: caml-list@inria.fr References: <2054357367.219171.1300974318806.JavaMail.root@zmbs4.inria.fr> <4D8BD02D.1010505@inria.fr> <4D8C73C8.6020801@inescporto.pt> <1301055903.8429.314.camel@thinkpad> <341494683.237537.1301057887481.JavaMail.root@zmbs4.inria.fr> <4D8C944A.9060601@inria.fr> <4D8CB859.9040709@inescporto.pt> <4D8CDDCC.4010000@ens-lyon.org> In-Reply-To: <4D8CDDCC.4010000@ens-lyon.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 25 Mar 2011 19:19:04.0480 (UTC) FILETIME=[813B8200:01CBEB21] Subject: Re: [Caml-list] Efficient OCaml multicore -- roadmap? On 03/25/2011 06:24 PM, Martin Jambon wrote: >> On 03/25/2011 01:10 PM, Fabrice Le Fessant wrote: >>> Of course, sharing structured mutable data between threads will not be >>> possible, but actually, it is a good thing if you want to write correct >>> programs ;-) > > On 03/25/11 08:44, Hugo Ferreira replied: >> I'll stick to my guns here. It simply makes solving certain problem >> unfeasible. Point in case: I work on machine learning algorithms. I >> use large data-structures that must be processed (altered) >> in order to learn. Because these data-structures are large it become >> impractical to copy this to a process every time I start off a new >> "thread". > > The solution would be to use get/set via a message-passing interface. > Cannot see how this works. Say I want to share a balanced binary tree. Several processes/threads each take this tree and alter it by adding and deleting elements. Each (new) tree is then further processed by other processes/threads. How can get/set be used in this scenario? >> From my purely speculative perspective, it seems unavoidable that > message-passing happens at some level in order to keep a shared data > structure in sync between a large number of processors. In other words, > any access to a shared data structure requires some physical copy no > matter what the programming language makes it look like. > I assume you are referring to multi-processing were memory is not shared amongst CPU's, correct? Hugo F. > > Martin >