Runtime Checking of Datatype Signatures in MPI
The MPI standard provides a way to send and receive complex combinations of datatypes (e.g., integers and doubles) with a single communication operation. The MPI standard specifies that the type signature, that is, the basic datatypes (language-defined types such as int or DOUBLE PRECISION), must match in communication operations such as send/receive or broadcast. Because datatypes may be defined by the user in MPI, there is a limitless collection of possible type signatures. Detecting the programmer error of mismatched datatypes is difficult in this case; detecting all errors essentially requires sending a complete description of the type signature with a message. This paper discusses an alternative: send the value of a function of the type signature so that (a) identical type signatures always give the same function value, (b) different type signatures often give different values, and (c) common cases (e.g., predefined datatypes) are handled exactly. Thus, erroneous programs are often (but not always) detected; correct programs never are flagged as erroneous. The method described is relatively inexpensive to compute and uses a small (and fixed, independent of the complexity of the datatype) amount of space in the message envelope.
Unable to display preview. Download preview PDF.
- Jason Hunter. Datatype checking in Cray T3D native MPI. Technical Report EPCC-SS95-07, Edinburgh Parallel Computing Centre, 1995.Google Scholar
- Message Passing Interface Forum. MPI: A message-passing interface standard. http://www.mpi-forum.org.
- Message Passing Interface Forum. MPI: A Message-Passing Interface standard. International Journal of Supercomputer Applications8(3/4):165–414, 1994.Google Scholar