Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0005754OCamlOCamlbuild (the tool)public2012-09-03 02:042014-08-20 09:49
Reportermeyer 
Assigned To 
PriorityhighSeverityfeatureReproducibilityalways
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version4.00.0 
Target Versionafter-4.02.0Fixed in Version 
Summary0005754: Not optimal parallel build of dependencies
DescriptionFor this example:

a1.ml:
a2.ml:
a3.ml:
a4.ml:
b1.ml:
open A1
open A2
b2.ml:
open A3
open A4
c.ml:
open B1
open B2

we have this dependency graph:

A1    A2   A3    A4
  \  /       \  /
   B1         B2
     \__   __/
        \ /
         C


Of course it's apparent that for -j 4 option, ocamlbuild should trivially recognize this case and build A1 & A2 & A3 & A4 in parallel, and later B1 & B2 also in parallel and then finally C, but currently it does not.

What it does is to build A1 & A2 in paraller, then build B1, then build A3 & A4 and the build B2, and finally C.
TagsNo tags attached.
Attached Files

- Relationships
has duplicate 0005796resolvedgasche ocamlbuild doesn't parallelize the build 
related to 0004934assigned ocamlbuild takes up to one minute to scan already done parts of Coq sources 

-  Notes
(0008299)
berenger (reporter)
2012-10-23 10:36

Ocamlbuild doesn't parallelize the build.
Using -j 1 to -j 8 with a step size of 1 shows that
there is almost no parallelization of the build.
(0008526)
meyer (developer)
2012-11-19 01:21

I agree that the tool currently is does not extremely parallelize the build. This fact mostly comes from the reason of handling dynamic dependencies automatically.
(0011376)
hhugo (reporter)
2014-05-07 10:21

Can someone give some detail/explanation/example on why handling dynamic dependencies prevent from doing proper parallel build ?
(0011516)
gasche (developer)
2014-05-18 17:45

hhugo, there is my understanding of things:

  http://gallium.inria.fr/blog/ocamlbuild-parallelization/ [^]

Do not hesitate to ask about any further details.
(0011517)
gasche (developer)
2014-05-18 17:47

(I also built some tools, on top of unrelated work of Arthur Charguéraud, to explore ocamlbuild's parallelization efficiency on actual runs. If someone actually starts working on this again, please ping me back to make me release them, it's very helpful.)

- Issue History
Date Modified Username Field Change
2012-09-03 02:04 meyer New Issue
2012-09-03 02:04 meyer Status new => assigned
2012-09-03 02:04 meyer Assigned To => meyer
2012-09-03 02:06 meyer Description Updated View Revisions
2012-09-03 02:07 meyer Description Updated View Revisions
2012-09-03 02:07 meyer Description Updated View Revisions
2012-09-03 02:07 meyer Description Updated View Revisions
2012-09-03 02:08 meyer Relationship added related to 0004934
2012-09-03 02:10 meyer Summary not optimal parraler build of dependencies => not optimal parallel build of dependencies
2012-09-03 02:10 meyer Description Updated View Revisions
2012-09-03 02:11 meyer Priority normal => high
2012-09-03 02:17 meyer Summary not optimal parallel build of dependencies => Not optimal parallel build of dependencies
2012-09-06 19:22 frisch Target Version 4.00.1+dev => 4.00.2+dev
2012-10-23 10:12 gasche Relationship added has duplicate 0005796
2012-10-23 10:36 berenger Note Added: 0008299
2012-11-19 01:21 meyer Note Added: 0008526
2013-06-16 18:33 gasche Target Version 4.00.2+dev => 4.02.0+dev
2013-06-16 21:25 gasche Severity major => minor
2013-06-16 21:26 gasche Severity minor => feature
2013-07-12 18:15 doligez Target Version 4.02.0+dev => 4.01.1+dev
2014-01-21 11:53 doligez Assigned To meyer =>
2014-05-07 10:21 hhugo Note Added: 0011376
2014-05-18 17:45 gasche Note Added: 0011516
2014-05-18 17:47 gasche Note Added: 0011517
2014-05-25 20:24 doligez Target Version 4.01.1+dev => 4.02.0+dev
2014-08-20 09:49 shinwell Target Version 4.02.0+dev => after-4.02.0


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker