Must

From HPC Wiki
Must /
Revision as of 15:14, 9 January 2019 by Jennifer-witham-0957@rwth-aachen.de (talk | contribs) (Created page with "MUST can be used to detect and report MPI errors. __TOC__ == General == The MUST software consists of three individual packages: * P<sup>n</sup>MPI * GTI * MUST P<sup>n<...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

MUST can be used to detect and report MPI errors.

General

The MUST software consists of three individual packages:

  • PnMPI
  • GTI
  • MUST

PnMPI is responsible for the basic infrastructure and collecting data by intercepting all MPI calls of the target application. GTI provides the tool structure and the MUST package handles performs the correctness checking. All three packages are configured and built together using CMake and should only be used with the specific compiler and MPI library used in the process.

The two main usages for MUST are during application development and porting of an application to a new system. MUST can single out new errors and those not manifesting in an application crash. It can also detect violations to the MPI standarad on the target system.

Correctness Checking

MUST provides checks for the following classes of errors:

  • Constants and integer values
  • Communicator usage
  • Datatype usage
  • Group usage
  • Operation usage
  • Request usage
  • Leak checks (MPI resources not freed before calling MPI Finalize)
  • Type mis-matches
  • Overlapping buffers passed to MPI
  • Deadlocks resulting from MPI calls
  • Basic checks for thread level usage (MPI_Init_thread)

Scalability

The scalability of MUST is dependent on the scalibility of the application. So far, it has been successfully tested with up to 16000 parallel processors.

Usage

For installation instructions as well as the latest release please visit the project MUST website, where there is also a detailed documentation available.