Job Startup


Up: Selected Subsystems Next: Building MPICH Previous: The Fortran Interface

The MPI Forum did not standardize the mechanism for starting jobs. This decision was entirely appropriate; by way of comparison, the Fortran standard does not specify how to start Fortran programs. Nonetheless, the extreme diversity of the environments in which MPICH runs and the diversity of job-starting mechanisms in those environments (special commands like prun, poe, or mexec, settings of various environment variables, or special command-line arguments to the program being started) suggested to us that we should encapsulate the knowledge of how to run a job on various machines in a single command. We named it mpirun. In all environments, an MPI program, say myprog, can be run with, say, 12 processes by issuing the command

mpirun -np 12 myprog  
Note that this might not be the only way to start a program, and additional arguments might usefully be passed to both mpirun and myprog (see Section Useful Commands ), but the mpirun command will always work, even if the starting of a job requires complex interaction with a resource manager. For example, at Argonne we use a home-grown scheduler called EASY instead of IBM's LoadLeveler to start jobs on our IBM SP; interaction with EASY is encapsulated in mpirun.

A number of other MPI implementations and environments have also decided to use the name mpirun to start MPI jobs. The MPI Forum is discussing whether this command can be at least partially standardized for MPI-2 (see Section MPI-2 ).



Up: Selected Subsystems Next: Building MPICH Previous: The Fortran Interface