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 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id 95D40BBAF for ; Sun, 18 May 2008 00:07:48 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqgCAKbzLkjUnw6Fb2dsb2JhbACCM5ABAQwFAgQHEwOZJA X-IronPort-AV: E=Sophos;i="4.27,502,1204498800"; d="scan'208";a="10832767" Received: from pih-relay06.plus.net ([212.159.14.133]) by mail2-smtp-roc.national.inria.fr with ESMTP; 18 May 2008 00:07:48 +0200 Received: from [80.229.56.224] (helo=beast.local) by pih-relay06.plus.net with esmtp (Exim) id 1JxUZ9-0005ks-Bz for caml-list@yquem.inria.fr; Sat, 17 May 2008 23:07:47 +0100 From: Jon Harrop Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] The closing gap (warning: long, inflammatory rant) Date: Sat, 17 May 2008 23:03:23 +0100 User-Agent: KMail/1.9.9 References: <200804211544.08897.jon@ffconsultancy.com> <20080421204721.GA11434@annexia.org> In-Reply-To: <20080421204721.GA11434@annexia.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200805172303.23605.jon@ffconsultancy.com> X-Plusnet-Relay: 3528187c80a917aa3bd55b163af8e980 X-Spam: no; 0.00; 0100,:01 quantified:01 niches:01 ocaml:01 frog:98 threads:01 threads:01 garbage:01 garbage:01 wrote:01 wrote:01 typing:01 caml-list:01 lazy:02 lazy:02 On Monday 21 April 2008 21:47:21 Richard Jones wrote: > On Mon, Apr 21, 2008 at 03:44:08PM +0100, Jon Harrop wrote: > > On Monday 21 April 2008 14:11:51 Richard Jones wrote: > > > Your threaded code is going to look really stupid when you have NUMA > > > machines with dozens of cores. Why are we optimizing for a case (SMP) > > > which will only be around for a few years. Arguably SMP isn't even > > > around now ... the AMD machine on which I'm typing this is firmly NUMA > > > with a good 10% penalty for accessing memory owned by the other > > > socket. > > > > 10% is nothing compared to the orders of magnitude cost of message > > passing. > > Or you could use shared memory (as I said below). As we recently quantified, that is also 100x slower without a concurrent GC. > > > > A concurrent GC should be developed. But I think you can compete in > > > > some "niches" without a concurrent GC. > > > > > > Why should a concurrent GC be developed? Threaded code is a nightmare > > > to write & debug, and it's only convenient for lazy programmers who > > > can't be bothered to think in advance about how they want to share > > > data. OCaml supports fork, event channels & shared memory right now > > > (and has done for years) so there is no penalty to writing it > > > properly. > > > > Ten years ago that was: > > > > "Why should we use gargage collection? Garbage collectors are a > > nightmare to implement and debug and are only useful for lazy programmers > > who cannot be bothered to deallocate values themselves. C++ has reference > > counting right now and there is no penalty for using it properly." > > Thanks for the straw man argument there. Garbage collectors and _not_ > using threads both improve the safety of the language. Avoiding threads does not improve the safety of the language, it simply degrades the capabilities of the language. -- Dr Jon D Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/products/?e