Difference between revisions of "How to Use MPI"

From HPC Wiki
Jump to: navigation, search
Line 3: Line 3:
 
This will give you a general overview of how to compile and execute a program that has been [[Parallel_Programming|parallelized]] with [[MPI]]. Many of the options listed below are the same for both OpenMPI and Intel MPI, however, be care if they do differentiate.
 
This will give you a general overview of how to compile and execute a program that has been [[Parallel_Programming|parallelized]] with [[MPI]]. Many of the options listed below are the same for both OpenMPI and Intel MPI, however, be care if they do differentiate.
  
 
+
== Loading the Correct Modules ==
== How to Compile MPI Code ==
 
 
 
So, you’ve been given a code that you would like to execute. The first step is to compile it. Depending on whether your code is written in C or Fortran, follow the instructions in one of the tables below. Make sure to replace the arguments inside <…> with specific values.
 
  
 
=== OpenMPI ===
 
=== OpenMPI ===
 
 
To ensure that the OpenMPI module is loaded, check the output of the following command:
 
To ensure that the OpenMPI module is loaded, check the output of the following command:
 
  $ module list
 
  $ module list
Line 18: Line 14:
 
If you are currently using IntelMPI as a default, type
 
If you are currently using IntelMPI as a default, type
 
  $ module switch intelmpi openmpi
 
  $ module switch intelmpi openmpi
 +
 +
=== IntelMPI ===
 +
Look for "intelmpi" in the output of this command:
 +
$ module list
 +
 +
In case it did not appear in the output, you have to load the module by typing
 +
$ module load intelmpi
 +
 +
If OpenMPI is already set as the MPI implementation of your cluster environment, switch to IntelMPI like this:
 +
$ module switch openmpi intelmpi
 +
 +
 +
== How to Compile MPI Code ==
 +
 +
So, you’ve been given a code that you would like to execute. The first step is to compile it. Depending on whether your code is written in C or Fortran, follow the instructions in one of the tables below. Make sure to replace the arguments inside <…> with specific values.
 +
 +
 +
=== OpenMPI ===
 +
 
Now you’re ready to compile your OpenMPI code! Use the following command to specify the program you would like to compile (replace <src_file> with a path to your code, e. g. ./myprog.c).  
 
Now you’re ready to compile your OpenMPI code! Use the following command to specify the program you would like to compile (replace <src_file> with a path to your code, e. g. ./myprog.c).  
 
{| class="wikitable" style="width: 60%;"
 
{| class="wikitable" style="width: 60%;"

Revision as of 12:08, 4 April 2018

Basics

This will give you a general overview of how to compile and execute a program that has been parallelized with MPI. Many of the options listed below are the same for both OpenMPI and Intel MPI, however, be care if they do differentiate.

Loading the Correct Modules

OpenMPI

To ensure that the OpenMPI module is loaded, check the output of the following command:

$ module list

In case it has not been loaded yet, type

$ module load openmpi

If you are currently using IntelMPI as a default, type

$ module switch intelmpi openmpi

IntelMPI

Look for "intelmpi" in the output of this command:

$ module list

In case it did not appear in the output, you have to load the module by typing

$ module load intelmpi

If OpenMPI is already set as the MPI implementation of your cluster environment, switch to IntelMPI like this:

$ module switch openmpi intelmpi


How to Compile MPI Code

So, you’ve been given a code that you would like to execute. The first step is to compile it. Depending on whether your code is written in C or Fortran, follow the instructions in one of the tables below. Make sure to replace the arguments inside <…> with specific values.


OpenMPI

Now you’re ready to compile your OpenMPI code! Use the following command to specify the program you would like to compile (replace <src_file> with a path to your code, e. g. ./myprog.c).

C/C++ Fortran
$ mpicc [options] <src_file> $ mpifort [options] <src_file>


How to Run an MPI Executable

Ensure that your the correct MPI module is loaded (see here).

Don’t forget to put the “-np” or “-n” option as explained below. All the other options listed below are not mandatory.

Option Function
-np <num_procs> or -n <num_procs> number of processes to run
-path <path> look for executables in the directory specified
-q or –quiet suppress helpful messages
-output-filename <name> redirects output into the file <name>.<rank>
--help lists all options available with an explanation