I found one major negative to this change - it assumes that my build is being done in exclusion of anything else on my computer. Unfortunately, this is never true.
Some of you may be unaware that recent versions of automake can run in parallel. That is, automake will run in parallel with a degree of (at most) $AUTOMAKE_JOBS. This can speed up the execution time of autogen.pl quite a bit on some platforms. On my cluster at cisco, here's a few quick timings of the entire autogen.pl process (of which, automake is the bottleneck):
$AUTOMAKE_JOBS Total wall time
value of autogen.pl
This is an older Xeon machine with 2 sockets, each with 2 cores.
There's a nice performance jump from 1 to 2, and a smaller jump from 2 to 4. 4 and 8 are close enough to not matter. YMMV.
I just committed a heuristic to autogen.pl to setenv AUTOMAKE_JOBS if it is not already set (https://svn.open-mpi.org/trac/ompi/changeset/23788):
- If lstopo is found in your $PATH, runs it and count how many PU's (processing units) you have. It'll set AUTOMAKE_JOBS to that number, or a maximum of 4 (which is admittedly a further heuristic).
- If lstopo is not found, it just sets AUTOMAKE_JOBS to 2.
For corporate legal information go to:
devel mailing list