Mpirun: Difference between revisions

From OpenSFS Wiki
Jump to navigation Jump to search
(Created page with "Back to the main BWG page MPI is a standard of protocols, libraries, and commands for running applications in a parallel environment. [https:...")
 
No edit summary
 
Line 1: Line 1:
[[Benchmarking_Working_Group|Back to the main BWG page]]
[[Benchmarking_Working_Group|Back to the main BWG page]]


MPI (Message-Passing Interface) is an industry-standard specification for writing message-passing programs.  Information about this standard is available from [http://www.mpi-forum.org MPI-Forum].  [http://www.open-mpi.org Open-MPI] is an open source implementation of MPI.


MPI is a standard of protocols, libraries, and commands for running applications in a parallel environment.
[https://www.open-mpi.org/doc/v1.8/man1/mpirun.1.php mpirun] is the command for executing MPI applications.


[https://www.open-mpi.org/doc/v1.8/man1/mpirun.1.php mpirun]
Installing and configuring OpenMPI, or any other MPI implementation, is beyond the scope of this document.  Deployment of OpenMPI (and other MPI implementations) is dependent on the compute environment and the resources available.  But here are a few items to consider:
 
*  Your system may have a resource manager/scheduler such as SLURM, TORQUE/MOAB, PBS, or ALPS.
*  The mpirun command (or something that looks like mpirun) may be a wrapper that simplifies and/or hides some of the resource manager complexity.
*  On some systems, you submit a job script that contains an mpirun command line. On other systems, mpirun is the command used to submit your jobs script and request resources.
*  In order to take advantage of all of the MPI features of your system, you should compile your application using the development libraries for the MPI implementation on your system.
*  An application may not have to be built with MPI in order to take advantage of the resource management features of your system.
*  If you have a large system, with heterogeneous resources, and you allow the resource manager to assign resources based on vague requirements, you will likely get results that vary greatly and require a great deal of effort to reproduce.
*  If you have a large system, with heterogeneous resources, and you specifically request certain resources based on your opinion of what you need, you may not get the best results.
*  Understanding the topology and configuration of your system will improve your chances of getting good and consistent results.

Latest revision as of 12:47, 25 March 2015

Back to the main BWG page

MPI (Message-Passing Interface) is an industry-standard specification for writing message-passing programs. Information about this standard is available from MPI-Forum. Open-MPI is an open source implementation of MPI.

mpirun is the command for executing MPI applications.

Installing and configuring OpenMPI, or any other MPI implementation, is beyond the scope of this document. Deployment of OpenMPI (and other MPI implementations) is dependent on the compute environment and the resources available. But here are a few items to consider:

  • Your system may have a resource manager/scheduler such as SLURM, TORQUE/MOAB, PBS, or ALPS.
  • The mpirun command (or something that looks like mpirun) may be a wrapper that simplifies and/or hides some of the resource manager complexity.
  • On some systems, you submit a job script that contains an mpirun command line. On other systems, mpirun is the command used to submit your jobs script and request resources.
  • In order to take advantage of all of the MPI features of your system, you should compile your application using the development libraries for the MPI implementation on your system.
  • An application may not have to be built with MPI in order to take advantage of the resource management features of your system.
  • If you have a large system, with heterogeneous resources, and you allow the resource manager to assign resources based on vague requirements, you will likely get results that vary greatly and require a great deal of effort to reproduce.
  • If you have a large system, with heterogeneous resources, and you specifically request certain resources based on your opinion of what you need, you may not get the best results.
  • Understanding the topology and configuration of your system will improve your chances of getting good and consistent results.