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.