From: Doug Gregor (dgregor_at_[hidden])
Date: 2007-08-08 11:10:48
On Aug 8, 2007, at 10:23 AM, David Abrahams wrote:
> Bill just sent me this clarification privately: they can handle
> parallel *builds* (with some caveats I didn't really understand that
> made it sound somewhat unreliable), just not parallel (runtime)
> *tests*. Why these two kinds of action should be treated so
> differently is a bit of a mystery to me.
It's a different model. The CMake/CTest way of handling tests is to
first do a full build of the source tree, including any additional
test executables. CMake does the build, and it's exactly the same
build that a user would do (although most users would opt not to
build extra testing-only executables). That "build" step can be
parallelized. CTest then runs the test suite, invoking those test
executables and recording the results. This step is still serial.
It's not conclusive proof that parallel builds will always work, but
while we were working on the CMake-based build system, I was using
"make -j4" for the build step of nightly regression testing on a 2-
core machine. It made a big difference in regression-testing time,
and we never saw any builds broken or any output mangled.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk