Processing MPI datatypes outside MPI

Robert Ross, Robert Latham, William D Gropp, Ewing Lusk, Rajeev Thakur

Research output: Chapter in Book/Report/Conference proceedingConference contribution


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.

Original languageEnglish (US)
Title of host publicationRecent Advances in Parallel Virtual Machine and Message Passing Interface - 16th European PVM/MPI Users' Group Meeting, Proceedings
Number of pages12
ISBN (Print)3642037690, 9783642037696
StatePublished - 2009
Event16th European Parallel Virtual Machine and Message Passing Interface Users' Group Meeting, EuroPVM/MPI - Espoo, Finland
Duration: Sep 7 2009Sep 10 2009

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume5759 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349


Other16th European Parallel Virtual Machine and Message Passing Interface Users' Group Meeting, EuroPVM/MPI

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science


Dive into the research topics of 'Processing MPI datatypes outside MPI'. Together they form a unique fingerprint.

Cite this