Mpiexec release 0.70, new mpich-gm support
Pete Wyckoff
pw at osc.edu
Tue Aug 27 10:07:49 EDT 2002
After much muttered cursing at the Myricom programmers, mpiexec
finally has support for the new process startup model in mpich-gm.
Support for the other message passing libraries continues to work
fine as before.
The mpich-gm library is a derivative of the generic MPICH MPI message
passing library distributed by Myricom for their Myrinet network
hardware and low-level GM interface. Starting with mpich-1.2.4..8, the
model for environmental management of processes in a parallel job
changed radically. It seems like too much effort to try to cater to
both old and new versions of mpich-gm within mpiexec, thus only certain
versions of mpiexec function with any given version of mpich-gm:
mpich-gm mpiexec
New >= 1.2.4..8 >= 0.70
Old < 1.2.4..8 <= 0.69
If you are itching to try out the new mpich, please download and try
mpiexec-0.70. If you are not upgrading your mpich-gm, do not advance
beyond mpiexec-0.69. Sorry to introduce this dependency. If you don't
care about Myrinet, certainly go with the latest 0.70.
Oh yeah, mpich-gm now implements MPI_Abort using out-of-band sockets
messages, which has been implemented in mpiexec too. If your code makes
heavy use of this function you will find that it exits much faster now. :)
For other MPI implementations, use "mpiexec -kill" to make sure all the
processes die promptly if any one decides to abort.
The only other significant new feature in 0.70 is line buffering of
process output. Depending on how the processes in your parallel job
generate output (printf, cerr << "foo", write, ...), it is possible
that the combined output file will mix output from different processes
on the same line, as:
hello: hello: process 1/3 starts
process 0/3 starts
hello: process 2/3 starts
Mpiexec now attempts to hold that second "hello: "... line from process
1 in the example above until process 0 finishes its complete output
line, at which point the bufferend output can be shipped to the
aggregate stdout:
hello: process 0/3 starts
hello: process 1/3 starts
hello: process 2/3 starts
After one second of waiting, any pending output is flushed regardless of
line breaks. This feature works for all the communication libraries:
mpich-p4, mpich-gm, lam, emp, none.
More info and downloads at: http://www.osc.edu/~pw/mpiexec/
Please respond to the list with bug reports, comments, suggestions,
and inflammatory text about certain hardware vendors.
-- Pete
More information about the mpiexec
mailing list