Chapter 2. New Features

This chapter describes the new MPT 1.3 features.

MPI Scaling to Support 48x128 Clusters

MPI on IRIX systems can now support up to 48 hosts and 128 processes per host. The internal MPI buffering scheme on IRIX has also changed. In MPT 1.3, separate pools of buffers are used to handle interhost and intrahost MPI communications.

Multiboard Adapter Selection

On IRIX systems, MPI now automatically detects multiple HIPPI network adapters and uses as many of them as possible when sending messages among hosts. The multiboard feature uses a "round robin" selection scheme in choosing the next available adapter over which to send the current message. The message is sent entirely over one adapter.

Thread-Safe MPI

On IRIX systems, MPI calls are thread-safe. MPI processes can be multi-threaded. Each thread associated with a process can issue MPI calls. Thread-safe MPI supports both POSIX threads and share group processes (known as sprocs). This feature is dependent on MPI being run on an IRIX 6.5 system or later.

MPI Collectives Optimization

The MPI_Barrier(3) routine is optimized to utilize fetch operations (known as fetch-op) hardware when available. This results in dramatically reduced barrier synchronization times.

Compile-time Interface Checking for Fortran MPI Subroutine Calls

An MPI interface definition module called mpi_interface has been added to permit Fortran 90 programmers to verify correctness of MPI subroutine calls at compile time. To activate interface checking, specify the -auto_use mpi_interface option on the f90 command line, as in the following example:

f90 -64 -auto_use mpi_interface program.f -lmpi

This feature depends on new versions of the Fortran 90 compiler. You must use Fortran 90 compiler release 7.2.1 or higher. Previous versions cannot process the mpi_interface definition module, nor can they process the -auto_use command line option.

For installations in which MPT 1.3 is installed in an alternate location, this feature also depends on new versions of the mpt and MIPSpro module files from the Modules Software package. You must get the module files that were packaged with Modules Software version 2.2.1.1 or later. To determine if your Modules Software is of the proper level, type the following command:

versions modules

For more details of the use of the -auto_use option to activate compile-time checking, see the MPI(1) command.

MPI Statistics

New MPI statistics routines allow you to view MPI internal buffer management usage. With the -stats option specified on the mpirun(1) command, each process prints statistics about the amount of data sent with MPI calls during the MPI_Finalize process. Routines for resetting and retrieving statistics are also available. For more information, see the MPI_SGI_stat(3) man page. These routines are available only on IRIX systems.

MPI I/O

MPT 1.3 contains the ROMIO implementation of MPI I/O, in which a rich API for performing I/O in a message passing application is defined. This feature is available on IRIX and UNICOS/mk systems.

XMPI and XPVM

With the MPT 1.3 release, support for the XMPI and XPVM utilities has been removed.

Cray TotalView Support

With the MPT 1.3 release, support for startup of MPI jobs on UNICOS systems is available with Cray TotalView version 3.0.0.16.

Message Queue Display

For IRIX systems, support for MPI message queue display with the Dolphin ToolWorks TotalView Multiprocess Debugger has been added. For more details, see the ToolWorks page at the following URL:

http://www.dolphinics.com/toolworks

MPI Usability Improvements

On IRIX systems, MPI start-up error diagnostics replace the error message, MPI: could not run executable. The new diagnostics are more descriptive than the former message, returned by the mpirun(1) command. This feature is dependent on Array Services 3.2 and patch 3532.