Message Passing Interface (MPI) is commonly used to write parallel programs for distributed memory parallel computers. MPI-CHECK is a tool developed to aid in the debugging of MPI programs that are written in free or fixed format Fortran 90 and Fortran 77. MPI-CHECK provides automatic compile-time and run-time checking of MPI programs. MPI-CHECK automatically detects the following problems in the use of MPI routines:
(i) mismatch in argument type, kind, rank or number; (ii) messages which exceed the bounds of the source/destination array; (iii) negative message lengths; (iv) illegal MPI calls before MPI_INITIALIZE or after MPI_FINALIZE; (v) inconsistencies between the declared type of a message and its associated DATATYPE argument; and (vi) actual arguments which violate the INTENT attribute. Full details may be found in the paper: MPI-CHECK: a Tool for Checking Fortran 90 MPI Programs Full source and examples may be found at: To License Agreement and Download
Deadlock detection has been added to MPI-CHECK, which we refer to as MPI-CHECK 2.0. Full details may be found in the paper DEADLOCK DETECTION IN MPI PROGRAMS Limitations: MPI-CHECK and MPI-CHECK 2.0 have been tested on SGI Origins and Cray T3E's, but should work in any UNIX environment where the .f90 extension indicates that Fortran source is in free format, and .f indicates that it is in fixed format.