Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
hpc-compendium
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ZIH
hpcsupport
hpc-compendium
Commits
8bc5d07e
Commit
8bc5d07e
authored
3 years ago
by
Martin Schroschk
Browse files
Options
Downloads
Patches
Plain Diff
Fix checks and move content to new wiki
parent
15f87df9
No related branches found
No related tags found
3 merge requests
!322
Merge preview into main
,
!319
Merge preview into main
,
!156
Fix checks and move content to new wiki
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
doc.zih.tu-dresden.de/docs/software/MPIUsageErrorDetection.md
+75
-0
75 additions, 0 deletions
...zih.tu-dresden.de/docs/software/MPIUsageErrorDetection.md
doc.zih.tu-dresden.de/mkdocs.yml
+6
-2
6 additions, 2 deletions
doc.zih.tu-dresden.de/mkdocs.yml
with
81 additions
and
2 deletions
doc.zih.tu-dresden.de/docs/software/MPIUsageErrorDetection.md
0 → 100644
+
75
−
0
View file @
8bc5d07e
# Introduction
MPI as the de-facto standard for parallel applications of the the massage passing paradigm offers
more than one hundred different API calls with complex restrictions. As a result, developing
applications with this interface is error prone and often time consuming. Some usage errors of MPI
may only manifest on some platforms or some application runs, which further complicates the
detection of these errors. Thus, special debugging tools for MPI applications exist that
automatically check whether an application conforms to the MPI standard and whether its MPI calls
are safe. At ZIH, we maintain and support MUST for this task, though different types of these tools
exist (see last section).
## MUST
MUST checks if your application conforms to the MPI standard and will issue warnings if there are
errors or non-portable constructs. You can apply MUST without modifying your source code, though we
suggest to add the debugging flag "-g" during compilation.
-
[MUST introduction slides]
**todo**
%ATTACHURL%/parallel_debugging_must.pdf
### Setup and Modules
You need to load a module file in order to use MUST. Each MUST installation uses a specific
combination of a compiler and an MPI library, make sure to use a combination that fits your needs.
Right now we only provide a single combination on each system, contact us if you need further
combinations. You can query for the available modules with:
```
Bash
module avail must
```
You can load a MUST module as follows:
```
Bash
module load must
```
Besides loading a MUST module, no further changes are needed during compilation and linking.
### Running with MUST
In order to run with MUST you need to replace the mpirun/mpiexec command with mustrun:
```
Bash
mustrun -np <NPROC> ./a.out
```
Besides replacing the mpiexec command you need to be aware that
**
MUST always allocates an extra
process
**
. I.e. if you issue a
`mustrun -np 4 ./a.out`
then MUST will start 5 processes instead.
This is usually not critical, however in batch jobs
**
make sure to allocate space for this extra
task
**
.
Finally, MUST assumes that your application may crash at any time. To still gather correctness
results under this assumption is extremely expensive in terms of performance overheads. Thus, if
your application does not crashs, you should add an "--must:nocrash" to the mustrun command to make
MUST aware of this knowledge. Overhead is drastically reduced with this switch.
### Result Files
After running your application with MUST you will have its output in the working directory of your
application. The output is named
`MUST_Output.html`
. Open this files in a browser to anlyze the
results. The HTML file is color coded: Entries in green represent notes and useful information.
Entries in yellow represent warnings, and entries in red represent errors.
## Other MPI Correctness Tools
Besides MUST, there exist further MPI correctness tools, these are:
-
Marmot (predecessor of MUST)
-
MPI checking library of the Intel Trace Collector
-
ISP (From Utah)
-
Umpire (predecessor of MUST)
ISP provides a more thorough deadlock detection as it investigates alternative execution paths,
however its overhead is drastically higher as a result. Contact our support if you have a specific
use cases that needs one of these tools.
This diff is collapsed.
Click to expand it.
doc.zih.tu-dresden.de/mkdocs.yml
+
6
−
2
View file @
8bc5d07e
...
@@ -42,13 +42,17 @@ nav:
...
@@ -42,13 +42,17 @@ nav:
-
FAQs
:
software/modules-faq.md
-
FAQs
:
software/modules-faq.md
-
Bio Informatics
:
software/Bioinformatics.md
-
Bio Informatics
:
software/Bioinformatics.md
-
SCS5 Migration Hints
:
software/SCS5Software.md
-
SCS5 Migration Hints
:
software/SCS5Software.md
-
GPU Programming
:
software/GPUProgramming.md
-
NanoscaleSimulations
:
software/NanoscaleSimulations.md
-
NanoscaleSimulations
:
software/NanoscaleSimulations.md
-
FEMSoftware
:
software/FEMSoftware.md
-
FEMSoftware
:
software/FEMSoftware.md
-
Score-P
:
software/ScoreP.md
-
Cloud
:
software/Cloud.md
-
Cloud
:
software/Cloud.md
-
VM tools
:
software/VMTools.md
-
VM tools
:
software/VMTools.md
-
Virtual Desktops
:
software/VirtualDesktops.md
-
Virtual Desktops
:
software/VirtualDesktops.md
-
Software Development and Tools
:
-
GPU Programming
:
software/GPUProgramming.md
-
Compilers
:
software/Compilers.md
-
Debuggers
:
software/Debuggers.md
-
MPI Error Detection
:
software/MPIUsageErrorDetection.md
-
Score-P
:
software/ScoreP.md
-
Data Management
:
-
Data Management
:
-
Overview
:
data_management/DataManagement.md
-
Overview
:
data_management/DataManagement.md
-
Announcement of Quotas
:
data_management/AnnouncementOfQuotas.md
-
Announcement of Quotas
:
data_management/AnnouncementOfQuotas.md
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment