Current prerelease: 3.0
The MPI Testing Tool (MTT) is a general infrastructure for testing
MPI implementations and running performance benchmarks in a
fully-automated fashion, potentially distributed across many different
clusters / environments / organizations, and gathering all the results
back to a central database for analysis. Several aspects of the MPI
- Whether the MPI can be successfully installed or not
- Whether MPI test programs can be compiled and linked against the
- Whether MPI test programs run successfully and/or generate valid
Although the MTT was initially designed for internal nightly
regression testing of the Open MPI code base, it is not specific to
Open MPI and can be used with any MPI implementation. The MTT was
designed with the following criteria in mind:
- Be freely available to minimize the deployment cost.
- Easily incorporate thousands of existing MPI tests and
- Support simultaneous distributed testing across multiple sites,
including operating behind organizational security boundaries (e.g.,
- Support on-demand reporting, specialization, and email reports.
- Support execution of parallel tests, and therefore also support
a variety of cluster resource managers.
- Support running in a fully-automated fashion, such as from
- Support automatically testing a single MPI implementation in a
wide variety of scenarios such as compiling and installing an MPI
implementation with a defined set of compilers and/or compiler
- Support automatically running each MPI test application in a
variety of different ways, such as with a defined set of different
- Support a plug-in framework to easily extend the MTT's
functionality without needing to change the core code of MTT
- Provide a highly flexible MTT test engine executable that is
suitable for a wide variety of different execution environments.
The Open MPI Project uses the MTT for all of its nightly regression
testing across all of the members. Results are submitted to a central
database and can be
interactively queried via the Open MPI web site.
Currently, much of MTT's documentation is on a wiki; it may move to
this web site someday: