I had some parallel build problems for particular combinations of tests targets so I took a really simple example to the CMake mailing list, and the upshot is parallel builds will not handle dependencies correctly if there are multiple targets mentioned on the "make" command-line that have common target dependencies. Those common dependencies will get multiply built meaning that at best you lose efficiency and at worst if the timing is right the multiple builds interfere with each other causing corruption in the results. So the recent timing result I posted here, i.e.,
> softw...@raven> time (make -j4 test_c_psc test_cxx_psc \ > test_f77_psc test_f95_psc> make_psc.out ; make test_some_diff_psc) > > real 0m27.556s > user 0m21.445s > sys 0m5.096s > > For this selection of languages, there is a factor of 1.6 improvement in > elapsed time due to the two cpu's on my platform. underestimates the efficiency improvement and may produce bogus or even completely corrupt results. As a result of the advice I got on the CMake list I have removed (as of revision 10496) the test_some_diff_psc target since it simply encourages incorrect parallel builds with multiple targets as above. Instead, I will encourage use of the test_diff_psc target (renamed from test_all_diff_psc) instead. That target tests every language with the psc device driver and compares the PostScript and stdout results. Here are some real timing comparisons between ctest and test_diff_psc. softw...@raven> time ctest -R '(examples_c|examples_cxx|examples_f77|examples_f95|examples_java|examples_octave|examples_python|examples_tcl|examples_pdl|examples_ada|examples_ocaml|examples_lua|examples_d|examples_compare)' >& ctest.out real 4m25.790s user 1m55.643s sys 0m13.637s softw...@raven> time make -j4 test_diff_psc >& make_test.out real 2m6.475s user 2m0.372s sys 0m16.989s Exactly the same tests are run in each case and "make all" was run before each so this is an honest timing comparison that demonstrates the expected factor of two+ improvement in speed for parallel builds and tests on my two-cpu PC. Note the test_diff_psc target has proper dependencies so re-runs of that target will re-run just the minimal test targets necessary to do the PostScript and stdin comparisons depending on what source code has been changed by a PLplot developer. That should be more convenient for developers than running "make all" and ctest with the appropriate -R option to redo the desired subset of tests. More later as I continue to develop the common (to both the build-tree when BUILD_TEST=ON and also the installed examples tree) testing framework for PLplot. 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 __________________________ ------------------------------------------------------------------------------ Come build with us! The BlackBerry® Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9-12, 2009. Register now! http://p.sf.net/sfu/devconf _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel