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=none autolearn=disabled version=3.1.3 Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 42925BBAF for ; Thu, 23 Apr 2009 18:49:10 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AswCAKA48EmE4zwCi2dsb2JhbACWSAEBAQoLChi5U4N1Bg X-IronPort-AV: E=Sophos;i="4.40,236,1238968800"; d="scan'208";a="26707511" Received: from isis.lip6.fr ([132.227.60.2]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 23 Apr 2009 18:49:09 +0200 Received: from tibre.lip6.fr (tibre.lip6.fr [132.227.74.2]) by isis.lip6.fr (8.13.5.20060614/lip6) with ESMTP id n3NGn8j9004219 ; Thu, 23 Apr 2009 18:49:08 +0200 (CEST) X-pt: isis.lip6.fr Received: from [192.168.2.27] (micmac [132.227.83.124]) by tibre.lip6.fr (8.13.5.20060614/8.13.3) with ESMTP id n3NGn8Lr014468; Thu, 23 Apr 2009 18:49:08 +0200 (MEST) Cc: Philippe Wang Message-Id: From: Philippe Wang To: caml-list@inria.fr In-Reply-To: <5409216D-4094-424B-BEEE-3AC3701A87DD@lip6.fr> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: [Caml-list] "ok with parallel threads" GC (aka ocaml for multicore) Date: Thu, 23 Apr 2009 18:49:11 +0200 References: <50CD0BA8-B89C-49E2-9082-FFA037F251A6@lip6.fr> <9E5A9BDB-2A67-45DC-A963-AA45B7E1693B@lip6.fr> <5409216D-4094-424B-BEEE-3AC3701A87DD@lip6.fr> X-Mailer: Apple Mail (2.930.3) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.0.1 (isis.lip6.fr [132.227.60.2]); Thu, 23 Apr 2009 18:49:08 +0200 (CEST) X-Scanned-By: MIMEDefang 2.63 on 132.227.60.2 X-Spam: no; 0.00; ocaml:01 runtime:01 runtime:01 hash:01 intern:01 extern:01 finalizers:01 finalizers:01 wikipedia:01 wikipedia:01 wiki:01 speedup:01 speedup:01 confuses:01 2009:98 > On Sat, Apr 18, 2009 at 1:05 AM, forum@x9c.fr wrote: > I was indeed mostly worried with the runtime itself. I wanted to > have a fully reentrant runtime for the OCaml-Java > project (to be able to execute several programs in the very same > JVM) and remember that it implied primitives > from "compare.c", "hash.c", "intern.c" and "extern.c" among > others to be written differently for this purpose. Indeed. We have made them reentrant but we haven't made much stress testing on that. Reentrance on those are not free (they have a cost), and the way we chose is the "simplest or quickest way". > Out of curiosity: you state that your GC is of "stop-the-world" > nature, what about finalizers ? > Are they executed by the GC thread when the world is stopped or > concurrently with > application threads ? > Not sure this question really matters, just curious (I mean, it > is doubtful that one would write finalizers with > a long execution time). Finalizers are supposed to be called by the thread that does the garbage collection, so there is no concurrency with finalizers as the rest of the world is meant to be stopped when garbage collecting. (Our garbage collector does not try to be as smart as the original one on many many things) By the way, we are late on writing the documentation for our future release... but we have just implemented a (simple) experimental growing heap. Here is a quote from wikipedia (http://en.wikipedia.org/wiki/Speedup): << Sometimes a speedup of more than N when using N processors is observed in parallel computing, which is called super linear speedup. Super linear speedup rarely happens and often confuses beginners, who believe the theoretical maximum speedup should be N when N processors are used. >> Well, we *have* observed that on a matrix multiplication :-) -- Philippe Wang Philippe.Wang@lip6.fr http://www-apr.lip6.fr/~pwang/