From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id CC7637EE49 for ; Thu, 12 Sep 2013 17:15:44 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of rathereasy@gmail.com) identity=pra; client-ip=209.85.160.53; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rathereasy@gmail.com"; x-sender="rathereasy@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of rathereasy@gmail.com designates 209.85.160.53 as permitted sender) identity=mailfrom; client-ip=209.85.160.53; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rathereasy@gmail.com"; x-sender="rathereasy@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-pb0-f53.google.com) identity=helo; client-ip=209.85.160.53; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="rathereasy@gmail.com"; x-sender="postmaster@mail-pb0-f53.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmAEAI3ZMVLRVaA1lGdsb2JhbABbgz9SiT+kTYoPiEcjcQgWDgEBAQEHCwsJEiqCHQgBAQQBQAEbEAIIAwEDAQsGBQsNDRoHIgERAQUBCgERGRKFZIF5AQMJBgyeEYxRgweEGwoZJwMKZIhbAQUMjhCBSwQHgneBJgOXeYEvjlsYKYJjggMg X-IPAS-Result: AmAEAI3ZMVLRVaA1lGdsb2JhbABbgz9SiT+kTYoPiEcjcQgWDgEBAQEHCwsJEiqCHQgBAQQBQAEbEAIIAwEDAQsGBQsNDRoHIgERAQUBCgERGRKFZIF5AQMJBgyeEYxRgweEGwoZJwMKZIhbAQUMjhCBSwQHgneBJgOXeYEvjlsYKYJjggMg X-IronPort-AV: E=Sophos;i="4.90,891,1371074400"; d="scan'208";a="32626631" Received: from mail-pb0-f53.google.com ([209.85.160.53]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 12 Sep 2013 17:15:43 +0200 Received: by mail-pb0-f53.google.com with SMTP id up15so10684075pbc.26 for ; Thu, 12 Sep 2013 08:15:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc :content-type; bh=byEWWs7w0OdHttpgS8lB9kbvay9P+bL+J9Yu8zEu0zE=; b=NodXGD6UJLgW7GlSvl7GtkQmCQYYvYCD/o+PZBTSiNiBz7X80chp/8lPtLhmESlizU vbcjtYdrqXXWkPiqa5AYj+TfTgvIa5UrjFtaN1bewnTD+8d6hNr1Q5g3d5S6utgBAV85 lDPCNm9ouiqo9GQxJG9uOumUljoiCem+Dzr4ybQcDoQvEdAXU6jbohOqS4IcK8sIoUNh TfLp9B/TJ/CEhkzezAxZBBuJ1YIezfDKufjchqXy/IHR8YRa5Lk4VFKPu+/Bc6U0zlzu YTPcj4BG4YH1LzE5pfhWSFDgKe4Cp6v1SA91rVsg2X0z9AN9GKUHIIB30bnPhOEl1Mrz DTLA== MIME-Version: 1.0 X-Received: by 10.68.33.34 with SMTP id o2mr8161823pbi.128.1378998942321; Thu, 12 Sep 2013 08:15:42 -0700 (PDT) Received: by 10.70.9.37 with HTTP; Thu, 12 Sep 2013 08:15:42 -0700 (PDT) Received: by 10.70.9.37 with HTTP; Thu, 12 Sep 2013 08:15:42 -0700 (PDT) In-Reply-To: <52311789.6090606@riken.jp> References: <5229DEF9.7040706@inria.fr> <5229F284.5050806@inria.fr> <5230695E.20100@riken.jp> <52311789.6090606@riken.jp> Date: Thu, 12 Sep 2013 11:15:42 -0400 Message-ID: From: Jacques Le Normand Cc: caml Content-Type: multipart/alternative; boundary=bcaec520f7291a54af04e63136b2 Subject: Re: [Caml-list] Accelerating compilation --bcaec520f7291a54af04e63136b2 Content-Type: text/plain; charset=ISO-8859-1 So is anyone working on accelerating compilation? Has any of these proposals been deemed superior to the others? On Sep 11, 2013 9:24 PM, "Francois Berenger" wrote: > On 09/11/2013 10:46 PM, Wojciech Meyer wrote: > >> What are you trying to prove here? >> > > I am not trying to prove anything. > I just manage to show something, which is the whole point of a good plot. > > > Makefiles will be always faster as > >> mentioned before, however there is still space for vast improvement, the >> biggest elephant here being slow scanning. Patches welcome. >> >> Also, it does not show the convenience of using ocamlbuild, in >> particular dynamic dependency resolver, nice language for specyfing >> complex rules, tags, and VPATH build that just works (does your makefile >> VPATH at all?) >> >> >> >> On Wed, Sep 11, 2013 at 2:00 PM, Francois Berenger > > wrote: >> >> On 9/7/13 5:51 AM, Fabrice Le Fessant wrote: >> >> On Fri, Sep 6, 2013 at 5:20 PM, Romain Bardou >> > wrote: >> >> 3) Parallel compilation in Ocamlbuild >> >> Of course it would help but it is not easy to >> implement so I'm just >> putting it there to be exhaustive. >> >> >> I'm not sure what you are referring to, OCamlBuild does >> already >> support parallel builds. >> >> >> Does it? I actually thought the -j option was ignored. >> >> I just did a quick test and I gain about 5 seconds with -j >> on a 1min15 >> build (I had cleaned, recompiled and recleaned before so >> that caching by >> the file system would not impact the result too much), so it >> does seem >> to be a *little* faster :) >> >> >> FWIW, I recently compiled Merlin with both ocamlbuild and >> ocp-build, >> on a quad-core with "-j 10" for both (the link to the ocp-build >> description file is in the latest OCamlPro's report), ocamlbuild >> needs >> 13s where ocp-build only needs 4s to compile everything. >> >> >> This morning, I played with a Makefile and ocamlbuild >> to build batteries-included from a clean source tree. >> >> The Makefile was provided by Cedric Cellier. >> >> Here follows the wallclock times to build on my eight cores machine. >> >> #You can plot them like this: >> cat < make_Vs_ocamlbuild.data >> #nprocs Makefile ocamlbuild >> 1 14.52 21.43 >> 2 6.84 17.57 >> 3 4.95 16.44 >> 4 4.18 15.95 >> 5 3.70 15.67 >> 6 3.36 15.62 >> 7 3.12 15.54 >> 8 3.03 15.292 >> EOF >> gnuplot -persist <> set title 'make Vs ocamlbuild' >> set xlabel 'nprocs' >> set ylabel 'wallclock time(s)' >> plot 'make_Vs_ocamlbuild.data' u 1:2 w lines title 'time -p make >> fast -j np', \ >> '' u 1:3 w lines title 'ocamlbuild -j np' >> EOF >> >> >> >> -- >> Caml-list mailing list. Subscription management and archives: >> https://sympa.inria.fr/sympa/_**_arc/caml-list >> >> > >> Beginner's list: http://groups.yahoo.com/group/**__ocaml_beginners >> >> > >> Bug reports: http://caml.inria.fr/bin/caml-**__bugs >> >> > >> >> >> > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/**arc/caml-list > Beginner's list: http://groups.yahoo.com/group/**ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-**bugs > --bcaec520f7291a54af04e63136b2 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

So is anyone working on accelerating compilation? Has any of= these proposals been deemed superior to the others?

On Sep 11, 2013 9:24 PM, "Francois Berenger= " <berenger@riken.jp> w= rote:
On 09/11/2013 10:46 PM, Wojciech Meyer wrote:
What are you trying to prove here?

I am not trying to prove anything.
I just manage to show something, which is the whole point of a good plot.
> Makefiles will be always faster as
mentioned before, however there is still space for vast improvement, the
biggest elephant here being slow scanning. Patches welcome.

Also, it does not show the convenience of using ocamlbuild, in
particular dynamic dependency resolver, nice language for specyfing
complex rules, tags, and VPATH build that just works (does your makefile
VPATH at all?)



On Wed, Sep 11, 2013 at 2:00 PM, Francois Berenger <berenger@riken.jp
<mailto:berenger@= riken.jp>> wrote:

=A0 =A0 On 9/7/13 5:51 AM, Fabrice Le Fessant wrote:

=A0 =A0 =A0 =A0 On Fri, Sep 6, 2013 at 5:20 PM, Romain Bardou
=A0 =A0 =A0 =A0 <romain.bardou@inria.fr <mailto:romain.bardou@inria.fr>> wrote= :

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 3) Parallel compilation in Ocamlbui= ld

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Of course it would help but it is n= ot easy to
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 implement so I'm just
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 putting it there to be exhaustive.<= br>

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 I'm not sure what you are referring to,= OCamlBuild does
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 already
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 support parallel builds.


=A0 =A0 =A0 =A0 =A0 =A0 Does it? I actually thought the -j option was ignor= ed.

=A0 =A0 =A0 =A0 =A0 =A0 I just did a quick test and I gain about 5 seconds = with -j
=A0 =A0 =A0 =A0 =A0 =A0 on a 1min15
=A0 =A0 =A0 =A0 =A0 =A0 build (I had cleaned, recompiled and recleaned befo= re so
=A0 =A0 =A0 =A0 =A0 =A0 that caching by
=A0 =A0 =A0 =A0 =A0 =A0 the file system would not impact the result too muc= h), so it
=A0 =A0 =A0 =A0 =A0 =A0 does seem
=A0 =A0 =A0 =A0 =A0 =A0 to be a *little* faster :)


=A0 =A0 =A0 =A0 FWIW, I recently compiled Merlin with both ocamlbuild and o= cp-build,
=A0 =A0 =A0 =A0 on a quad-core with "-j 10" for both (the link to= the ocp-build
=A0 =A0 =A0 =A0 description file is in the latest OCamlPro's report), o= camlbuild
=A0 =A0 =A0 =A0 needs
=A0 =A0 =A0 =A0 13s where ocp-build only needs 4s to compile everything.


=A0 =A0 This morning, I played with a Makefile and ocamlbuild
=A0 =A0 to build batteries-included from a clean source tree.

=A0 =A0 The Makefile was provided by Cedric Cellier.

=A0 =A0 Here follows the wallclock times to build on my eight cores machine= .

=A0 =A0 #You can plot them like this:
=A0 =A0 cat <<EOF > make_Vs_ocamlbuild.data
=A0 =A0 #nprocs Makefile ocamlbuild
=A0 =A0 1 14.52 21.43
=A0 =A0 2 6.84 17.57
=A0 =A0 3 4.95 16.44
=A0 =A0 4 4.18 15.95
=A0 =A0 5 3.70 15.67
=A0 =A0 6 3.36 15.62
=A0 =A0 7 3.12 15.54
=A0 =A0 8 3.03 15.292
=A0 =A0 EOF
=A0 =A0 gnuplot -persist <<EOF
=A0 =A0 set title 'make Vs ocamlbuild'
=A0 =A0 set xlabel 'nprocs'
=A0 =A0 set ylabel 'wallclock time(s)'
=A0 =A0 plot 'make_Vs_ocamlbuild.data' u 1:2 w lines title 'tim= e -p make
=A0 =A0 fast -j np', \
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0'= 9; u 1:3 w lines title 'ocamlbuild -j np'
=A0 =A0 EOF



=A0 =A0 --
=A0 =A0 Caml-list mailing list. =A0Subscription management and archives:
=A0 =A0 https://sympa.inria.fr/sympa/__arc/caml-list
=A0 =A0 <https://sympa.inria.fr/sympa/arc/caml-list>
=A0 =A0 Beginner's list: http://groups.yahoo.com/group/__ocam= l_beginners
=A0 =A0 <http://groups.yahoo.com/group/ocaml_beginners> =A0 =A0 Bug reports: http://caml.inria.fr/bin/caml-__bugs
=A0 =A0 <http://caml.inria.fr/bin/caml-bugs>




--
Caml-list mailing list. =A0Subscription management and archives:
ht= tps://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners<= /a>
Bug reports:
http://caml.inria.fr/bin/caml-bugs
--bcaec520f7291a54af04e63136b2--