From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id IAA10496; Sun, 11 Jul 2004 08:21:37 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id IAA10469 for ; Sun, 11 Jul 2004 08:21:36 +0200 (MET DST) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.12.10/8.12.10) with ESMTP id i6B6LZSH026145; Sun, 11 Jul 2004 08:21:35 +0200 Received: from bourg.inria.fr (bourg.inria.fr [128.93.11.100]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id IAA10538; Sun, 11 Jul 2004 08:21:35 +0200 (MET DST) Received: from basile by bourg.inria.fr with local (Exim 4.34) id 1BjXhw-00070d-Tl; Sun, 11 Jul 2004 08:21:04 +0200 Date: Sun, 11 Jul 2004 08:21:04 +0200 To: Nicolas Cannasse , caml-list@inria.fr Subject: Re: [Caml-list] [ANN] new release of OcamlJitRun - release 1.5-fetnat Message-ID: <20040711062104.GA26819@bourg.inria.fr> References: <20040710220404.GA24012@bourg.inria.fr> <000e01c466d3$aef06820$0100a8c0@warp> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: <000e01c466d3$aef06820$0100a8c0@warp> User-Agent: Mutt/1.5.6+20040523i From: "Basile Starynkevitch [local]" X-Miltered: at concorde with ID 40F0DC6F.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 basile:01 basile:01 2004:99 cannasse:01 citing:01 metaocaml:01 ocamlp:01 incorrectly:01 runtime:01 ocamlc:01 ocamlc:01 apllications:01 ocamlopt:01 compilations:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On Sun, Jul 11, 2004 at 01:14:40AM +0200, Nicolas Cannasse wrote: > [...] (Citing me, Basile S.) Basile>> I am seeking significant Ocaml programs (compilable as bytecode with Basile>> future 3.08 or latest CVS) running more than half a minute of CPU (on Basile>> eg a 2GHz x86 PC) - and if possible less than 20 or 30 minutes of Basile>> CPU. Please suggest me some such programs. Neither Coq, nor CIL or Basile>> MetaOcaml are easily compilable with future 3.08 or recent CVS Ocaml - Basile>> because of ocamlp4 changes (the ABI for locations has changed) or C Basile>> primitive names (the C primitives routines have now a name starting Basile>> with caml_ and some programs incorrectly use the name of internal Basile>> primitive in the runtime). > Hello Basile, and thanks for your work on JIT. I didn't have time yet to > give it a try, but I might do in a near future. One suggestion of typical > OCaml application that performances could be compared is the ocaml compiler > ocamlc itself, running on a large set of files : the ocamlc sources for > example. Creation and manipulation of AST as well as typing algorithms are > good test apllications (heavy use of recursive functions and pattern > matching). This is of course a test I'm using very often. However, most ocamlc (or even ocamlopt) compilations are very short (typically, each ocamlc invocation last less than 0.1 or 0.2 second), so the JIT translation time is not at all negigible (it takes about 0.13 seconds on an AMD 2000 running at 1.66GHz). And since the JIT translation occurs in every ocamlc process, you may actually observe an overall slowdown. For example, in ocaml/stdlib make runs in 5.2 seconds, but make RUNTIME=ocamljitrun takes 14.4 seconds (because ocamlc was invoked 84 times, and the bytecode was JIT translated 84 times) On big compilation (in a single ocamlc or ocamlopt process), OcamlJitRun gives a speedup of about 2. For example, the C-- compiler contains a x86imkasm.ml file (of 3253 lines) which is compiled by ocamlopt (with the bytecode interpreter ocamlrun) in 59.8 sec, and by the same ocamlopt bytecode interpreted by ocamljitrun in 30.3 sec. For reference, the native ocamlopt.opt does the same job in 17.2 sec. Another interesting test would be a non-trivial toplevel execution (The toplevel can be executed by OcamlJitRun, as avery other bytecode), or programs using DynLink. Thanks for your comments. Regards. -- Basile STARYNKEVITCH -- basile dot starynkevitch at inria dot fr other email : basile at starynkevitch dot net Project cristal.inria.fr - phone +33 1 3963 5197 - mobile 6 8501 2359 http://cristal.inria.fr/~starynke --- all opinions are only mine ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners