Machine Info (charis)

Performance Comparison: Compiling DESO BLAS Library

Note: GNU make (as well as some other make implementations) offer the -j [number] option, which launches up to number compilation jobs in parallel, dependencies permitting. Leaving out the optional number means launching as many independent jobs as available.

I had to modify the makefiles for my DESO BLAS library a bit in order to make sure that parallel execution of certain commands was safe (the mechanism used by GNU make only looks at dependencies).

Comparison: The following diagram compares the compilation times on my old desktop (lazy), on a dual processor Sun Ultra-SPARC-2 server, on a 1GHz Pentium III and finally on my new machine charis, which is a dual Athlon 1600+. Note that all compilations were run over NFS (100 Mbit/s ethernet connection to server).

Diagram showing compilation performance

Conclusions

  1. All machines actually benefit from launching more than one compilation job at a time, even uni-processor machines. This may be due to overlapping disk I/O over NFS with CPU work.
  2. For one-job-at-a-time (gmake), PIII 1GHz is 2.4 times as fast as PII 233 MHz, Athlon 1600+ is 3.7 times as fast. That makes the Athlon 1600+ faster than the PIII 1GHz by a factor of 1.5.
  3. Both dual-processor machines achieve a speedup of about 1.8 by launching as many jobs in parallel as dependencies permit.
  4. The measure that really interests me: How much faster will I be able to compile my code now? This compares the gmake version from my old PII desktop (because I only parallelised my makefiles today...) and the gmake -j version from my new desktop: Factor of 6.72.



Why "charis"?

2 Corinthians 9:8
With acknowledgement to Tony Fisher http://www-users.cs.york.ac.uk/~fisher/ .



Olav Beckmann
Last modified: Wed Dec 5 18:58:43 GMT 2001