Difference between revisions of "MUST"
(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<...") |
|||
(10 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:HPC-Developer]] | ||
MUST can be used to detect and report MPI errors. | MUST can be used to detect and report MPI errors. | ||
Line 11: | Line 12: | ||
* MUST | * MUST | ||
− | P<sup>n</sup>MPI 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 performs the correctness checking. All three packages are configured and built together using [ | + | P<sup>n</sup>MPI 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 performs the correctness checking. All three packages are configured and built together using [[Cmake|CMake]] and should only be used with the specific compiler and MPI library used in the process. |
The two main use cases 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 standard on the target system. | The two main use cases 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 standard on the target system. | ||
Line 37: | Line 38: | ||
== Usage == | == Usage == | ||
− | For installation instructions as well as the latest release please visit the [https:// | + | For installation instructions as well as the latest release please visit the [https://www.itc.rwth-aachen.de/MUST project MUST website], where there is also a detailed documentation available. |
=== Usage on the RWTH Cluster === | === Usage on the RWTH Cluster === | ||
− | The MUST tool is available as a module | + | The MUST tool is available as a module. The available versions can be listed using: |
− | module | + | module avail MUST |
An executable MPI program can be analysed with MUST using: | An executable MPI program can be analysed with MUST using: | ||
Line 49: | Line 50: | ||
mustrun -np <num-processes> <executable> | mustrun -np <num-processes> <executable> | ||
− | After the application run, MUST will generate an HTML output (usually called "MUST_Output.html") listing and describing all errors detected. This file is located in the current directory and can be inspected | + | After the application run, MUST will generate an HTML output (usually called "MUST_Output.html") listing and describing all errors detected. This file is located in the current directory and can be inspected using a web browser, e.g. by caling: |
firefox <path-to-HTML-file> | firefox <path-to-HTML-file> | ||
+ | |||
+ | == References == | ||
+ | |||
+ | [https://www.itc.rwth-aachen.de/MUST MUST website] |
Latest revision as of 18:39, 9 September 2023
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 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 use cases 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 standard 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 mismatches
- 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.
Usage on the RWTH Cluster
The MUST tool is available as a module. The available versions can be listed using:
module avail MUST
An executable MPI program can be analysed with MUST using:
mustrun -np <num-processes> <executable>
After the application run, MUST will generate an HTML output (usually called "MUST_Output.html") listing and describing all errors detected. This file is located in the current directory and can be inspected using a web browser, e.g. by caling:
firefox <path-to-HTML-file>