MPI Testing Tool logo

MPI Testing Tool (MTT)

  |   Home   |   Support   |   FAQ   |  

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 are tested:

  1. Whether the MPI can be successfully installed or not
  2. Whether MPI test programs can be compiled and linked against the MPI installation
  3. Whether MPI test programs run successfully and/or generate valid performance results

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 benchmarks.
  • Support simultaneous distributed testing across multiple sites, including operating behind organizational security boundaries (e.g., firewalls).
  • 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 cron.
  • 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 options.
  • Support automatically running each MPI test application in a variety of different ways, such as with a defined set of different options to mpirun / mpiexec.
  • Support a plug-in framework to easily extend the MTT's functionality without needing to change the core code of MTT itself.
  • 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: