Chapter

Recent Advances in Parallel Virtual Machine and Message Passing Interface

Volume 5759 of the series Lecture Notes in Computer Science pp 42-53

Processing MPI Datatypes Outside MPI

  • Robert RossAffiliated withLancaster UniversityMathematics and Computer Science Division, Argonne National Laboratory
  • , Robert LathamAffiliated withLancaster UniversityMathematics and Computer Science Division, Argonne National Laboratory
  • , William GroppAffiliated withLancaster UniversityComputer Science Department, University of Illinois at Urbana-Champaign
  • , Ewing LuskAffiliated withLancaster UniversityMathematics and Computer Science Division, Argonne National Laboratory
  • , Rajeev ThakurAffiliated withLancaster UniversityMathematics and Computer Science Division, Argonne National Laboratory

* Final gross prices may vary according to local VAT.

Get Access

Abstract

The MPI datatype functionality provides a powerful tool for describing structured memory and file regions in parallel applications, enabling noncontiguous data to be operated on by MPI communication and I/O routines. However, no facilities are provided by the MPI standard to allow users to efficiently manipulate MPI datatypes in their own codes.

We present MPITypes, an open source, portable library that enables the construction of efficient MPI datatype processing routines outside the MPI implementation. MPITypes enables programmers who are not MPI implementors to create efficient datatype processing routines. We show the use of MPITypes in three examples: copying data between user buffers and a “pack” buffer, encoding of data in a portable format, and transpacking. Our experimental evaluation shows that the implementation achieves rates comparable to existing MPI implementations.