A portable method for finding user errors in the usage of MPI collective operations

Christopher Falzone, Anthony Chan, Ewing Lusk, William Gropp

Research output: Contribution to journalArticlepeer-review


An MPI profiling library is a standard mechanism for intercepting MPI calls by applications. Profiling libraries are so named because they are commonly used to gather runtime information about performance characteristics. Here we present a profiling library whose purpose is to detect user errors in the use of MPI's collective operations. While some errors can be detected locally (by a single process), other errors involving the consistency of arguments passed to MPI collective functions must be tested for in a collective fashion. While the idea of using such a profiling library does not originate here, we take the idea further than it has been taken before (we detect more errors, including those involving datatype inconsistencies) and present an open-source library that can be used with any MPI implementation. We describe the tests carried out, provide some details of the implementation, illustrate the usage of the library, and present performance tests.

Original languageEnglish (US)
Pages (from-to)155-165
Number of pages11
JournalInternational Journal of High Performance Computing Applications
Issue number2
StatePublished - May 2007
Externally publishedYes


  • Collective
  • Datatype
  • Errors
  • Hashing
  • MPI

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture


Dive into the research topics of 'A portable method for finding user errors in the usage of MPI collective operations'. Together they form a unique fingerprint.

Cite this