-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #24 from stigrj/mpi_runs
Add page with MPI recommendations
- Loading branch information
Showing
2 changed files
with
39 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
|
||
|
||
Running MPI jobs | ||
================ | ||
|
||
There are two available MPI implementations on Stallo: | ||
|
||
- OpenMPI provided by the ``foss`` module, e.g. ``module load foss/2016b`` | ||
- Intel MPI provided by the ``intel`` module, e.g. ``module load intel/2016b`` | ||
|
||
There are several ways of launching an MPI application within a SLURM | ||
allocation, e.g. ``srun``, ``mpirun``, ``mpiexec`` and ``mpiexec.hydra``. | ||
Unfortunately, the best way to launch your program depends on the MPI | ||
implementation (and possibly your application), and choosing the wrong command | ||
can severly affect the efficiency of your parallel run. Our recommendation is | ||
the following: | ||
|
||
Intel MPI | ||
--------- | ||
|
||
With Intel MPI, we have found that ``mpirun`` can incorrectly distribute the | ||
MPI ranks among the allocated nodes. We thus recommend using ``srun``:: | ||
|
||
$ srun --mpi=pmi2 ./my_application | ||
|
||
OpenMPI | ||
------- | ||
|
||
With OpenMPI, ``mpirun`` seems to be working correctly. Also, it seems that | ||
``srun`` fails to launch your application in parallel, so here we recommend | ||
using ``mpirun``:: | ||
|
||
$ mpirun ./my_application | ||
|
||
NOTE: If you're running on the ``multinode`` partition you automatically | ||
get the ``--exclusive`` flag, e.i. you get allocated (and charged for) **full** | ||
nodes, even if you explicitly ask for less resources per node. This is not the | ||
case for the ``normal`` partition. |