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.2 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 mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 1CF99BBAF for ; Sat, 26 Sep 2009 16:35:18 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuYCAPvCvUrUnwcki2dsb2JhbACCH5hjAQEBCgsKBxEGuWqEHgU X-IronPort-AV: E=Sophos;i="4.44,456,1249250400"; d="scan'208";a="35045524" Received: from relay.ptn-ipout02.plus.net ([212.159.7.36]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 26 Sep 2009 16:35:17 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoIHAPvCvUrUnw6U/2dsb2JhbACCH9MNhB4F Received: from fhw-relay07.plus.net ([212.159.14.148]) by relay.ptn-ipout02.plus.net with ESMTP; 26 Sep 2009 15:35:17 +0100 Received: from [87.114.87.187] (helo=leper.local) by fhw-relay07.plus.net with esmtp (Exim) id 1MrYMm-0002qh-Qe for caml-list@yquem.inria.fr; Sat, 26 Sep 2009 15:35:16 +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, 26 Sep 2009 15:46:34 +0100 User-Agent: KMail/1.9.9 References: <200909260253.36868.jon@ffconsultancy.com> <60263.70.26.46.86.1253973081.squirrel@pegasus.carleton.ca> In-Reply-To: <60263.70.26.46.86.1253973081.squirrel@pegasus.carleton.ca> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200909261546.34693.jon@ffconsultancy.com> X-Plusnet-Relay: a6fbae8688e8c0301edb0548aecda46d X-Spam: no; 0.00; ocaml:01 predictable:01 predictable:01 structs:01 recursion:01 unboxed:01 structs:01 ocaml:01 compiler:01 2009:98 carleton:98 2009:98 carleton:98 analog:98 hobby:98 On Saturday 26 September 2009 14:51:21 kcheung@math.carleton.ca wrote: > > On Saturday 26 September 2009 01:45:50 kcheung@math.carleton.ca wrote: > >> Perhaps an off-topic and naive question: What does it take to beat F# > >> and > >> still have predictable performance? > > > > Provided you're talking abouts today's machines and don't care about > > pause times, HLVM with a parallel GC (not unlike the oc4mc one) and a > > task library > > would beat F# and still have predictable performance. > > If I understand correctly, HLVM is an > analog of Microsoft's CLR. HLVM certainly draws upon ideas from the CLR but it is different in many respects. One important advantage of HLVM over the CLR is that it handles structs correctly in the presence of tail calls (thanks to LLVM). This means that tuples can be represented (in the absence of polymorphic recursion) as unboxed C structs which *greatly* reduces the burden on the garbage collector. HLVM also uses a far superior code generator (LLVM) compared to the CLR and OCaml. > So theoretically, > one can build a compiler for ocaml that > compiles to HLVM. Would that make ocaml > beat F#? That would beat the performance of F# with minimal effort. That was the goal of my HLVM hobby project but I was forced to shelve it when the recession hit. Hopefully I'll get back to it in 2010... -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e