Q-Logic IB6054601-00 D Manuel D’Utilisation

Page de 122
3 – Using InfiniPath MPI
File I/O in MPI
3-18
IB6054601-00 D
Q
3.8.1
MPD Description
The Multi-Purpose Daemon (MPD) was developed by Argonne National Laboratory 
(ANL), as part of the MPICH-2 system. While the ANL MPD had certain advantages 
over the use of their 
mpirun
 (faster launching, better cleanup after crashes, better 
tolerance of node failures), the InfiniPath 
mpirun
 offers the same advantages.
The disadvantage of MPD is reduced security, since it does not use 
ssh
 to launch 
node programs. It is also a little more complex to use than 
mpirun
 because it 
requires starting a ring of MPD daemons on the nodes. Therefore, most users should 
use the normal 
mpirun
 mechanism for starting jobs as described in the previous 
chapter. However, for users who wish to use MPD, it is included in the InfiniPath 
software.
3.8.2
Using MPD
To start an MPD environment, use the 
mpdboot
 program. You must provide 
mpdboot
 
with a file listing the machines on which to run the 
mpd
 daemon. The format of this 
file is the same as for the mpihosts file in the 
mpirun
 command.
Here is an example of how to run mpdboot:
mpdboot -f hostsfile
After 
mpdboot
 has started the MPD daemons, it will print a status message and 
drop you into a new shell.
To leave the MPD environment, exit from this shell. This will terminate the daemons.
To run an MPI program from within the MPD environment, use the 
mpirun
 command. 
You do not need to provide a 
mpihosts
 file or a count of CPUs; by default, 
mpirun
 
will use all nodes and CPUs available within the MPD environment.
To check the status of the MPD daemons, use the 
mpdping
 command
NOTE:
To use MPD, the software package mpi-frontend-2.0*.rpm must be 
installed on all nodes. See the InfiniPath Install Guide for more details on 
software installation. 
3.9
File I/O in MPI
File I/O in MPI is discussed briefly in the following two sections.
3.9.1
Linux File I/O in MPI Programs
MPI node programs are Linux programs, which can do file I/O to local or remote 
files in the usual ways through APIs of the language in use. Remote files are