From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 697DBBBCA for ; Sun, 11 May 2008 06:03:27 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlUDANMMJkjUnw6Fb2dsb2JhbACCMY9YAQwFAgQHEwOXNQ X-IronPort-AV: E=Sophos;i="4.27,467,1204498800"; d="scan'208";a="26040833" Received: from pih-relay06.plus.net ([212.159.14.133]) by mail4-smtp-sop.national.inria.fr with ESMTP; 11 May 2008 06:03:27 +0200 Received: from [80.229.56.224] (helo=beast.local) by pih-relay06.plus.net with esmtp (Exim) id 1Jv2mU-00018t-1G for caml-list@yquem.inria.fr; Sun, 11 May 2008 05:03:26 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Re: Why OCaml rocks Date: Sun, 11 May 2008 04:58:19 +0100 User-Agent: KMail/1.9.9 References: <84fa750ef0446e7c0473286ec5fc7e8b@terzarima.net> In-Reply-To: <84fa750ef0446e7c0473286ec5fc7e8b@terzarima.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200805110458.19162.jon@ffconsultancy.com> X-Plusnet-Relay: efb4edb1f58aedeb8790d86578e1d03a X-Spam: no; 0.00; ocaml:01 forsyth:01 ocaml:01 deallocation:01 indirection:01 traversing:01 frog:98 wrote:01 caml-list:01 data:02 data:02 seems:03 perhaps:05 passing:05 passing:05 On Saturday 10 May 2008 22:39:33 Charles Forsyth wrote: > >2. How do we avoid excessive copying? What if each parallel thread only > >requires part of a data structure, should we dissect the data structure to > >alleviate message passing? > > this seems to suggest that message passing implies serialising the data > structure. perhaps i missed something, though. Copying is the obvious solution in OCaml because there is no easy way to share OCaml values between processes. There are alternatives (like referencing shared memory as custom blocks and managing deallocation manually) but they are substantially more complicated and it is not clear whether or not they will be faster in OCaml because indirection is required to disambiguate the heaps for the GC and prevent it from traversing the shared memory. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e