[CMake] Obtaining improved GNU make performance on Makefiles generated by cmake

Alan W. Irwin irwin at beluga.phys.uvic.ca
Tue Mar 25 16:22:52 EDT 2008


On 2008-03-25 14:28-0400 Bill Hoffman wrote:

> --- build all of paraview with nothing needing a build:
>
> 2.6
> make  15.21s user 5.55s system 74% cpu 28.049 total
> make  15.44s user 5.35s system 98% cpu 21.073 total

user+system = 20.76s and 20.79s for the two runs.
>
> 2.4
> make  14.40s user 5.09s system 59% cpu 32.793 total
> make  14.73s user 4.74s system 98% cpu 19.684 total
user+system = 19.49s and 19.47s for the two runs

> --- build a target that only depends on only one other target.
> 2.6
> make vtkCommon  0.43s user 0.08s system 99% cpu 0.513 total
> make vtkCommon  0.44s user 0.08s system 99% cpu 0.522 total
> make vtkCommon  0.41s user 0.10s system 99% cpu 0.515 total
user+system = 0.51s, 0.52s, and 0.51s for the three runs.

> 2.4
> make vtkCommon  3.32s user 5.70s system 99% cpu 9.025 total
> make vtkCommon  3.24s user 5.81s system 99% cpu 9.059 total
user+system = 9.02s and 9.05s for the two runs

> --- Build a target that depends on 60 other targets
> 2.6
>
> make vtkPVServerManager  9.70s user 3.04s system 99% cpu 12.754 total
> make vtkPVServerManager  9.64s user 2.91s system 99% cpu 12.569 total
user+system = 12.74s and 12.55s for the two runs.

>
> 2.4
>
> make vtkPVServerManager  11.40s user 6.38s system 99% cpu 17.955 total
> make vtkPVServerManager  11.19s user 6.58s system 99% cpu 17.774 total
user+system = 17.78s and 17.77s for the two runs.

>
>
> In summary, I would say 2.6 or CVS is better.  We only loose less than a 
> second out of 15 on the total, and we gain 2 or 3 on single targets.

I agree with your general conclusion, but the specifics need amendment
(which actually strengthens your case).

The sum of user+system times is the most relevant number since that will be
the actual time the user will have to wait if the system is otherwise idle.
Thus, I have calculated that number above (which also shows the good
consistency of your repeated measurements).  From those numbers it appears a
1-depend target latency is better by ~8.5s, a 60-depend target latency is
better by ~5.0s, and a full build latency is worse by ~1.2s consistent with
the idea that the updated Makefile generator produces more efficient results
for targets with few dependencies, but as the number of dependencies is
increased, more duplicate work is done by the new method until for full
builds the results are actually worse than the old (2.4.8) version.  This
qualitative summary also holds for the PLplot results although the upsides
of the new method are marginal with an obvious downside for the full build.
Despite these discrepancies in quantitative results paraview's needs should
prevail since that project has substantially larger latency than PLplot.

Thanks, Bill, for running these paraview latency tests.  My view is they
should decide the matter unless KDE or some other project with similar or
larger latency to paraview disagrees with the paraview results you obtained.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list