[vsipl++] patch: Set up parallel service(s) during testing.
Jules Bergmann
jules at codesourcery.com
Thu Jan 26 19:46:53 UTC 2006
Stefan Seefeld wrote:
> The attached patch adds a new 'ParallelService' resource to the
> test database which, if lam is used, runs 'lamboot' in its SetUp
> method and 'wipe' during CleanUp. (We can complete this whenever
> other services are needed for other MPI implementations.)
>
> This new resource is associated with all tests that live under
> the 'parallel/' subdirectory. (The next logical step is thus to
> identify all tests requiring this service and move them.)
>
> Ok to commit ?
Stefan, looks good, please check it in.
Here are some thoughts on how we might want to do parallel testing.
All of our parallel tests work (in theory) with any number of procesors
from 1 to infinity. We should continue to run all tests with a single
processor by default. I.e. 'qmtest run' would run every test either
directly, or via 'mpirun -np 1 test".
There should be some way to run the parallel tests with a specifed
number of processors. Since they're off in a separate directory, maybe
it looks something like:
qmtest run -mpiopt "-np 2" parallel
If qmtest just does an 'lamboot' with no other options, all processors
are virtual that run on the same host. I.e. even though cugel only has
2 CPUs, you could run parallel tests with 8 processors. This won't run
8 times faster, but it will stress communications, etc. and is a
valuable form of testing.
However, it is possible to pass a configuration file (called the "LAM
boot schema") to lamboot to tell it what set of machines to run
processes on, other than the local host. We could in theory pass a
configuration file with sethra, cugel, and sparrowhack and then run
tests on 6 phyiscal processors. We shouldn't hardcode this config file
into either qmtest or configure, it is enough to add an option that
passes an optional bhost file to lamboot, i.e.
qmtest run -mpiopt "-np 2" -bhost BHOSTFILE parallel
With this in place, when building a release on cugel, we might do:
# test everything with 1 processor:
qmtest run
# test parallel tests with 2 and 4 processors:
qmtest run -mpiopt "-np 2" parallel
qmtest run -mpiopt "-np 4" parallel
When running the GTRI cluster, we could be bold and try larger
configurations:
qmtest run -bhost cluster -mpiopt "-mp 64" parallel
If you want to avoid cluttering up the qmtest option space with MPI
specific options like -mpiopt and -bhost, you might have a single option
that allows parameters to be passed to the chosen par-services:
qmtest run -paropt "np=2" -paropt "bhost=host.file" parallel
-- Jules
More information about the vsipl++
mailing list