Efficient MPI Support for Advanced Hybrid Programming Models

  • Torsten Hoefler
  • Greg Bronevetsky
  • Brian Barrett
  • Bronis R. de Supinski
  • Andrew Lumsdaine
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6305)


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 thread-safe, 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 non-scalable 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.


Message Passing Interface Matched Probe Virtual Channel Unknown Size Message Rate 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    MPI Forum: MPI: A Message-Passing Interface Standard. Version 2.2 (2009)
  2. 2.
    Itakura, K., Uno, A., Yokokawa, M., Ishihara, T., Kaneda, Y.: Scalability of Hybrid Programming for a CFD Code on the Earth Simulator. Parallel Comput. 30, 1329–1343 (2004)CrossRefGoogle Scholar
  3. 3.
    Rabenseifner, R.: Hybrid Parallel Programming on HPC Platforms. In: Proc. of the Fifth European Workshop on OpenMP, EWOMP 2003, Aachen, Germany (2003)Google Scholar
  4. 4.
    Gropp, W.D., Thakur, R.: Issues in Developing a Thread-Safe MPI Implementation. In: Mohr, B., Träff, J.L., Worringen, J., Dongarra, J. (eds.) PVM/MPI 2006. LNCS, vol. 4192, pp. 12–21. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Balaji, P., Buntinas, D., Goodell, D., Gropp, W., Thakur, R.: Toward Efficient Support for Multithreaded MPI Communication. In: European PVM/MPI Users’ Group Meeting, pp. 120–129 (2008)Google Scholar
  6. 6.
    Gregor, D., Lumsdaine, A.: Design and Implementation of a High-Performance MPI for C# and the Common Language Infrastructure. In: Proceedings of PPoPP 2008, New York, NY, USA, pp. 133–142 (2008)Google Scholar
  7. 7.
    Gregor, D., Hoefler, T., Barrett, B., Lumsdaine, A.: Fixing Probe for Multi-Threaded MPI Applications (Revision 4). Technical report, Indiana University (2009)Google Scholar
  8. 8.
    Hoefler, T., Mehlan, T., Lumsdaine, A., Rehm, W.: Netgauge: A Network Performance Measurement Framework. In: Perrott, R., Chapman, B.M., Subhlok, J., de Mello, R.F., Yang, L.T. (eds.) HPCC 2007. LNCS, vol. 4782, pp. 659–671. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  9. 9.
    Thakur, R., Gropp, W.: Test Suite for Evaluating Performance of MPI Implementations That Support MPI_THREAD_MULTIPLE. In: Cappello, F., Herault, T., Dongarra, J. (eds.) PVM/MPI 2007. LNCS, vol. 4757, pp. 46–55. Springer, Heidelberg (2007)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Torsten Hoefler
    • 1
  • Greg Bronevetsky
    • 2
  • Brian Barrett
    • 3
  • Bronis R. de Supinski
    • 2
  • Andrew Lumsdaine
    • 4
  1. 1.University of Illinois at Urbana-ChampaignUrbanaUSA
  2. 2.Lawrence Livermore National LaboratoryCenter for Applied Scientific ComputingLivermoreUSA
  3. 3.Sandia National LaboratoriesAlbuquerqueUSA
  4. 4.Open Systems LabIndiana UniversityBloomingtonUSA

Personalised recommendations