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.1 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr 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 9BE4ABBAF for ; Sat, 10 Oct 2009 06:01:03 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiEEAKmjz0rUnwdkdWdsb2JhbACCIJhsAQwKCQkTBL4zhC0E X-IronPort-AV: E=Sophos;i="4.44,535,1249250400"; d="scan'208";a="48327622" Received: from relay.pcl-ipout02.plus.net ([212.159.7.100]) by mail4-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 10 Oct 2009 06:01:03 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuoEANqjz0rUnw4T/2dsb2JhbACCINdhhC0E Received: from pih-relay06.plus.net ([212.159.14.19]) by relay.pcl-ipout02.plus.net with ESMTP; 10 Oct 2009 05:01:02 +0100 Received: from [87.112.28.140] (helo=leper.local) by pih-relay06.plus.net with esmtp (Exim) id 1MwT8g-0003cl-EC for caml-list@yquem.inria.fr; Sat, 10 Oct 2009 05:01:02 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] OC4MC : OCaml for Multicore architectures Date: Sat, 10 Oct 2009 05:01:52 +0100 User-Agent: KMail/1.9.9 References: <4ABCDC24.2040806@inria.fr> <4ABD51BA.4010008@gmail.com> In-Reply-To: <4ABD51BA.4010008@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200910100501.52182.jon@ffconsultancy.com> X-Plusnet-Relay: 137d3a9d6abc8bba10f563f4df9095be X-Spam: no; 0.00; ocaml:01 ocaml:01 runtime:01 trivial:01 mutation:01 allocations:01 arrays:01 arrays:01 bigarrays:01 lib:01 libbigarray:01 bigarray:01 stubs:01 bigarray:01 stubs:01 On Saturday 26 September 2009 00:26:50 Benjamin Canou wrote: > On the maintenance side, as Philippe said, we already have some half > working version with ocaml 3.11.x, but partly because of the changes > made to the native runtime in this release and partly because of [1], > porting the patch is not trivial. OC4MC seems to work very well for numerical problems that do not allocation at all but introducing even the slightest mutation (not even in the inner loop) completely destroys performance and scaling. I'm guessing the reason is that any allocations eventually trigger collections and those are copying the entire heap which, in this case, consists almost entirely of float array arrays. My guess was that using big arrays would alleviate this problem by placing most of the data outside the OCaml heap (I'm guessing that oc4mc leaves the element data of a big array alone and copies only the small reference to it?). However, it does not seem to handle bigarrays: ../out/lib/ocaml//libbigarray.a(bigarray_stubs.o): In function `caml_ba_compare': bigarray_stubs.c:(.text+0x1e5): undefined reference to `caml_compare_unordered' bigarray_stubs.c:(.text+0x28d): undefined reference to `caml_compare_unordered' collect2: ld returned 1 exit status Error during linking If I am correct then I would value functioning bigarrays above OCaml 3.11 support. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e