• DocumentCode
    2958348
  • Title

    Holistic Debugging of MPI Derived Datatypes

  • Author

    Protze, Joachim ; Hilbrich, Tobias ; Knüpfer, Andreas ; De Supinski, Bronis R. ; Müller, Matthias S.

  • Author_Institution
    Center for Inf. Services & High Performance Comput., Tech. Univ. Dresden, Dresden, Germany
  • fYear
    2012
  • fDate
    21-25 May 2012
  • Firstpage
    354
  • Lastpage
    365
  • Abstract
    The Message Passing Interface (MPI) specifies an API that allows programmers to create efficient and scalable parallel applications. The standard defines multiple constraints for each function parameter. For performance reasons, no MPI implementation checks all of these constraints at runtime. Derived data types are an important concept of MPI and allow users to describe an application´s data structures for efficient and convenient communication. Using existing infrastructure we present scalable algorithms to detect usage errors of basic and derived MPI data types. We detect errors that include constraints for construction and usage of derived data types, matching their type signatures in communication, and detecting erroneous overlaps of communication buffers. We implement these checks in the MUST runtime error detection framework. We provide a novel representation of error locations to highlight usage errors. Further, approaches to buffer overlap checking can cause unacceptable overheads for non-contiguous data types. We present an algorithm that uses patterns in derived MPI data types to avoid these overheads without losing precision. Application results for the benchmark suites SPEC MPI2007 and NAS Parallel Benchmarks for up to 2048 cores show that our approach applies to a broad range of applications and that our extended overlap check improves performance by two orders of magnitude. Finally, we augment our runtime error detection component with a debugger extension to support in-depth analysis of the errors that we find as well as semantic errors. This extension to gdb provides information about MPI data type handles and enables gdb -- and other debuggers based on gdb -- to display the content of a buffer as used in MPI communications.
  • Keywords
    application program interfaces; error detection; message passing; parallel processing; program debugging; API; MPI derived datatypes; MUST runtime error detection framework; NAS parallel benchmarks; application data structures; benchmark suites SPEC MPI2007; buffer overlap checking; communication buffer erroneous overlap detection; derived data type construction; derived data type usage; error in-depth analysis; error location representation; function parameter; holistic debugging; message passing interface; noncontiguous data types; parallel applications; runtime error detection component; scalable algorithms; semantic errors; type signature matching; usage error detection; Benchmark testing; Debugging; Libraries; Runtime; Scalability; Semantics; Standards; MPI; datatypes; debugging; runtime error detection;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel & Distributed Processing Symposium (IPDPS), 2012 IEEE 26th International
  • Conference_Location
    Shanghai
  • ISSN
    1530-2075
  • Print_ISBN
    978-1-4673-0975-2
  • Type

    conf

  • DOI
    10.1109/IPDPS.2012.41
  • Filename
    6267849