Movatterモバイル変換


[0]ホーム

URL:


Skip to main content

Advertisement

Springer Nature Link
Log in

Modernizing the C++ Interface to MPI

  • Conference paper

Abstract

The Message Passing Interface (MPI) is thede facto standard for writing message passing applications. Much of MPI’s power stems from its ability to provide a high-performance, consistent interface across C, Fortran, and C++. Unfortunately, with cross-language consistency at the forefront, MPI tends to support only the lowest common denominator of the three languages, providing a level of abstraction far lower than typical C++ libraries. For instance, MPI does not inherently support standard C++ constructs such ascontainers anditerators, nor does it provide seamless support for user-defined classes. To map these common C++ constructs into MPI, programmers must often write non-trivial boiler-plate code and weaken the type-safety guarantees provided by C++. This paper describes several ideas for modernizing the C++ interface to MPI, providing a more natural syntax along with seamless support for user-defined types and C++ Standard Library constructs. We also sketch the C++ techniques required to implement this interface and provide a preliminary performance evaluation illustrating that our modern interface does not imply unnecessary overhead.

This is a preview of subscription content,log in via an institution to check access.

Access this chapter

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. MPI-1.1 Specification,http://www.mpi-forum.org/docs/docs.html

  2. Squyres, J.M., McCandless, B.C., Lumsdaine, A.: Object Oriented MPI (OOMPI): a class library for the Message Passing Interface. In: Second MPI Developer’s Conference, Notre Dame, IN, USA. IEEE, Los Alamitos (1996)

    Google Scholar 

  3. Lee, L.-Q.: Generic Programming for High-Performance Scientific Computing. PhD thesis, University of Notre Dame (2002)

    Google Scholar 

  4. Ramsey, R.: Boost Serialization Library (2003),http://www.mpi-forum.org/docs/docs.html

  5. Skjellum, A., Lu, Z., Bangalore, P.V., Doss, N.E.: Explicit parallel programming in C++ based on the message-passing interface (MPI). In: Wilson, G.V. (ed.) Parallel Programming Using C++. MIT Press, Cambridge (1996)

    Google Scholar 

  6. Skjellum, A., Wooley, D.G., Lu, Z., Wolf, M., Bangalore, P.V., Lumsdaine, A., Squyres, J.M., McCandless, B.: Object-oriented analysis and design of the Message Passing Interface. j-CCPE 13(4), 245–292 (2001)

    MATH  Google Scholar 

  7. Squyres, J.M., Saphir, B., Lumsdaine, A.: The Design and Evolution of the MPI-2 C++ Interface. In: Proceedings, 1997 International Conference on Scientific Computing in Object-Oriented Parallel Computing. LNCS, Springer, Heidelberg (1997)

    Google Scholar 

Download references

Author information

Authors and Affiliations

  1. Open Systems Laboratory, Indiana University,  

    Prabhanjan Kambadur, Douglas Gregor, Andrew Lumsdaine & Amey Dharurkar

Authors
  1. Prabhanjan Kambadur

    You can also search for this author inPubMed Google Scholar

  2. Douglas Gregor

    You can also search for this author inPubMed Google Scholar

  3. Andrew Lumsdaine

    You can also search for this author inPubMed Google Scholar

  4. Amey Dharurkar

    You can also search for this author inPubMed Google Scholar

Editor information

Editors and Affiliations

  1. Forschungszentrum Jülich, ZAM, 52425, Jülich, Germany

    Bernd Mohr

  2. NEC Europe Ltd., NEC Laboratories Europe, Rathausallee 10, D-53757, Sankt Augustin, Germany

    Jesper Larsson Träff

  3. Dolphin Interconnect Solutions ASA R&D Germany, Siebengebirgsblick 26, 53343, Wachtberg, Germany

    Joachim Worringen

  4. Computer Science Department, University of Tennessee, 37996-3450, Knoxville, TN, USA

    Jack Dongarra

Rights and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kambadur, P., Gregor, D., Lumsdaine, A., Dharurkar, A. (2006). Modernizing the C++ Interface to MPI. In: Mohr, B., Träff, J.L., Worringen, J., Dongarra, J. (eds) Recent Advances in Parallel Virtual Machine and Message Passing Interface. EuroPVM/MPI 2006. Lecture Notes in Computer Science, vol 4192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11846802_39

Download citation

Publish with us


[8]ページ先頭

©2009-2025 Movatter.jp