Efficient MPI support for advanced hybrid programming models

  • Authors:
  • Torsten Hoefler;Greg Bronevetsky;Brian Barrett;Bronis R. De Supinski;Andrew Lumsdaine

  • Affiliations:
  • University of Illinois at Urbana-Champaign, Urbana, IL;Lawrence Livermore National Laboratory, Center for Applied Scientific Computing, Livermore, CA;Sandia National Laboratories, Albuquerque, NM;Lawrence Livermore National Laboratory, Center for Applied Scientific Computing, Livermore, CA;Indiana University, Open Systems Lab, Bloomington, IN

  • Venue:
  • EuroMPI'10 Proceedings of the 17th European MPI users' group meeting conference on Recent advances in the message passing interface
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The number of multithreaded Message Passing Interface (MPI) implementations and applications is increasing rapidly. We discuss how multithreaded applications can receive messages of unknown size. As is well known, combining MPI_Probe/MPI_Recv is not threadsafe, but many assume that trivial workarounds exist. We discuss those workarounds and show how they fail in practice by either limiting the available parallelism unnecessarily, consuming resources in a nonscalable way, or promoting global deadlocks. In this light, we propose two fundamentally different efficient approaches to enable thread-safe messaging in MPI-2.2: fine-grained locking and matching outside of MPI. Our approaches provide thread-safe probe and receive functionality, but both have deficiencies, including performance limitations and programming complexity, that could be avoided if MPI would offer a thread-safe (stateless) interface to MPI Probe. We propose such an extension for the upcoming MPI-3 standard, provide a reference implementation, and demonstrate significant performance benefits.