Portable MPI Model Implementation Version 1.2.7, June, 2005 David Ashton Anthony Chan Bill Gropp Rob Latham Rusty Lusk Rob Ross Rajeev Thakur Mathematics and Computer Science Division Argonne National Laboratory MPICH is an open-source, portable implementation of the Message-Passing Interface Standard. It contains a complete implementation of version 1.2 of the MPI Standard and also significant parts of MPI-2, particularly in the area of parallel I/O. This is only a bug fix release. All new work is in MPICH2, available at www.mcs.anl.gov/mpi/mpich2 . In fact, this may be the last release of MPICH1. The installation and user's manuals have been combined as of the 1.2.3. release; in addition, device-specific versions are available, simplifying the use of the manuals when troubleshooting. The manual may be found in doc/mpichman-devicename.ps.gz, where devicename is one of the MPICH devices. For example, most Beowulf users should look at either doc/mpichman-chp4mpd.ps.gz (for the ch_p4mpd device) or doc/mpichman-chp4.ps.gz (for the ch_p4 device). Users of a single shared memory multiprocessor can use doc/mpichman-chshmem.ps.gz. Globus users may use mpichman-globus2.ps.gz. PDF versions of all of these are also provided. Man pages for each MPI routine, along with commands for compiling and running MPI programs, are provided in the directories man (Unix man format) and www (HTML). Known Problems: MPICH (and MPICH2) are designed to be portable to a wide range of systems. As part of our testing, we build and test MPICH on many systems. However, we do not have access to some systems for development and testing, and on these systems there may be build problems. The systems that we know do not work include IBM AIX 5.2 and the ch_shmem device Systems to which we have no access and cannot test include HP-UX IRIX Tru64 (We can test on AIX but have no development access, so problems cannot be fixed) Systems on which we test frequently and which MPICH is known to run include Linux for IA32 (several flavors) Solaris (both 32 bit and 64 bit) MPICH has also been built on Mac OS X but hangs on some tests when running them on a single machine. The globus2 device passes most tests but may fail ictest and ictest3 . Information on previous versions -------------------------------- Features new and improved in Version 1.2.5 included: Significantly better collective algorithms are available. Major changes for the globus2 device and the ch_nt device. Features new or improved in Version 1.2.4 included: SMP support has been inproved through the use of sched_yield. SMP Systems that are not oversubscribed can consider configuring with --disable-yeild. The option --with-common-prefix=dir can be used to set the directory path for installing tools such as upshot and jumpshot that are independent of the MPICH device. For example, configure --with-device=ch_p4 --prefix=/usr/local/mpich-1.2.5/ch_p4 \ --with-common-prefix=/usr/local/mpich-1.2.5 make make install configure --with-device=ch_p4mpd --prefix=/usr/local/mpich-1.2.5/ch-p4mpd \ --with-common-prefix=/usr/local/mpich-1.2.5 A number of bugs in the ch_p4, ch_p4mpd, and ch_shmem device hae been fixed. These could cause programs to hang or generate error messages. There are many improvements to the MPICH-NT version. Features new or improved in Version 1.2.3 included: Bug fixes and improved-portability, particularly in the area of Linux and Mac OS X support. Other new features include better support for Intel compilers, particularly for IA64 Linux, better support for various Fortran compilers, and some fixes for rare race conditions in the ch_p4 device. The documentation on the ch_p4mpd device and the MPD system has been improved. Version 1.2.3 also includes all of the source for both the Unix and Windows versions. Windows users should still use the self-installing version available through the web page. The globus device now supports version 2 of Globus. Features new or improved in Version 1.2.2 included: There are a number of improvements to the ch_p4 device that improve both performance and reliability, particularly on Linux platforms. Significant upgrades have been made to the MPD system of daemons that provide fast startup of MPICH jobs, management of stdio, and a crude parallel debugger based on gdb. To use the MPD system, do configure --with-device=ch_p4mpd See the README file in the mpich/mpid/mpd directory and the MPICH User's Guide for information on how to use the MPD system with MPICH. The NT version of MPICH has been further enhanced and is available separately; see the MPICH download page http://www.mcs.anl.gov/mpi/mpich/download.html Known problems and bugs with this release are documented in the file mpich/KnownBugs . There is an FAQ at http://www.mcs.anl.gov/mpi/mpich/faq.html . See this if you get "permission denied", "connection reset by peer", or "poll: protocol failure in circuit setup" when trying to run MPICH. A change log for all changes from the previous release is available from http://www.mcs.anl.gov/mpi/mpich/r1_2_2changes.html . There is a paper on jumpshot available at ftp://ftp.mcs.anl.gov/pub/mpi/jumpshot.ps.gz . A paper on MPD is available at ftp://ftp.mcs.anl.gov/pub/mpi/mpd.ps.gz. What's next: All of our new development effort is going towards an all-new implementation of MPI, including both the MPI-1 and MPI-2 functions. This new system is called MPICH2 and is available at www.mcs.anl.gov/mpi/mpich2 . Reporting Bugs: If you have trouble, first try MPICH2 (www.mcs.anl.gov/mpi/mpich2) . If you need to use MPICH1, check the installation and user manuals (in mpich/doc/) . Next, check the on-line bug list at http://www.mcs.anl.gov/mpi/mpich . Finally, if you are still having problems, send The type of system (often, uname -a will give you this) The output of configure The output of make Any simple programs or tests to mpi-bugs@mcs.anl.gov . Please don't use the newsgroup comp.parallel.mpi ; this newsgroup is for discussions about MPI, not any particular implementation of MPI. .