MPICH Test Suite
This test suite is a *supplement* to other test suites, including the
-original MPICH testsuite, the Intel testsuite, and the IBM MPI test suite
+original MPICH testsuite, the Intel testsuite, and the IBM MPI test suite
(or test suites derived from that test, including the MPI C++ tests).
Building the Test Suite
./configure CC=xlc MPICC=mpcc F77=xlf MPIF77=mpxlf CXX=xlC \
MPICXX="mpCC -cpp" F90=xlf90 MPIF90=mpxlf90 \
- --disable-spawn \
- --enable-strictmpi
+ --disable-spawn \
+ --enable-strictmpi
(or the _r versions of the compilers)
add them), you can specify the path with --with-mpi=<path>. For example,
if they are in /usr/local/mympi/bin, use
-./configure --with-mpi=/usr/local/mympi
+./configure --with-mpi=/usr/local/mympi
(configure will append the bin to the path that you give).
C++ bindings of the MPI routines.
For implementations that do not implement all of MPI-2, there are --disable
-options, including --disable-spawn and --disable-cxx. To restrict tests to
+options, including --disable-spawn and --disable-cxx. To restrict tests to
just what is defined in the MPI specification, use --enable-strictmpi .
The script that runs the tests assumes that the MPI implementation
MPITEST_VERBOSE - if set to an integer value, output messages whose
level is at least that value (0 is a good choice here)
MPITEST_RETURN_WITH_CODE - Set the return code from the test programs based on
- success or failure, with a zero for success and one
- for failure (value must be yes, YES, true, or TRUE to
- turn this on)
-MPITEST_THREADLEVEL_DEFAULT - Set the default thread level. Values are
- multiple, serialized, funneled, and single.
+ success or failure, with a zero for success and one
+ for failure (value must be yes, YES, true, or TRUE to
+ turn this on)
+MPITEST_THREADLEVEL_DEFAULT - Set the default thread level. Values are
+ multiple, serialized, funneled, and single.
Batch Systems
=============
For systems that run applications through a batch system, the option "-batch"
-to the runtests script will create a script file that can be edited and
-submitted to the batch system. The script checktests can be run to
-summarize the results.
+to the runtests script will create a script file that can be edited and
+submitted to the batch system. The script checktests can be run to
+summarize the results.
Specifically, (assuming the bash shell, and that the directory "btest", a
subdirectory of the test suite directory, is used for running the tests):
runtests -batch -tests=testlist
... edit btest/runtests.batch to make it a value batch submissions script
... run that script and wait for the batch job to complete
-cd btest && ../checktests
+cd btest && ../checktests
If a program other than mpiexec is used in the batch form to run programs, then
specify that to runtests:
(Here, aprun is the command used on Cray XE6 systems.)
-Note that some programs that are used to run MPI programs add extra output,
+Note that some programs that are used to run MPI programs add extra output,
which can confuse any tool that depends on clean output in STDOUT. Since
-such unfortunate behavior is common, the option -ignorebogus can be given
+such unfortunate behavior is common, the option -ignorebogus can be given
to checktests:
cd btest && ../checktests --ignorebogus
Controlling the Tests that are Run
==================================
-The tests are actually built and run by the script "runtests". This script
+The tests are actually built and run by the script "runtests". This script
can be given a file that contains a list of the tests to run. This file has
two primary types of entries:
- directories: Enter directory and look for the file "testlist".
+ directories: Enter directory and look for the file "testlist".
Recursively run the contents of that file
program names: Build and run that program
sendrecv1 4
-In addition, the program line can contain key=value pairs that provide
-special information about running the test. For example,
+In addition, the program line can contain key=value pairs that provide
+special information about running the test. For example,
sendflood 8 timeLimit=600
env=name=value : Run the program with environment variable "name" given the
value "value"
-mpiversion=x.y : Build and run the program only if the MPI version is at
- least x.y. For example,
+mpiversion=x.y : Build and run the program only if the MPI version is at
+ least x.y. For example,
distgraph1 4 mpiversion=2.2
- will build and run distgraph1 with 4 MPI processes only
- if the MPI version is at least 2.2.
+ will build and run distgraph1 with 4 MPI processes only
+ if the MPI version is at least 2.2.
-strict=bool : If bool is false, only build and run the program if
+strict=bool : If bool is false, only build and run the program if
--enable-strictmpi was not used in configuring the test suite.
- That is, a line such as
+ That is, a line such as
neighb_coll 4 strict=false
Says that this test is not valid for a strict MPI implementation;
it contains extensions to the standard, or in the case of some
- MPICH development, MPIX routines
+ MPICH development, MPIX routines
-resultTest=proc : This is used to change the way in which the success or
- failure of a test is evaluated. proc is one of several
+resultTest=proc : This is used to change the way in which the success or
+ failure of a test is evaluated. proc is one of several
Perl subroutines defined within the runtest program. These
are primarily used within the testsuite for tests programs
- exit with expected status values or that timeouts are
+ exit with expected status values or that timeouts are
in fact handled.
-
-