Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1345206.1345228acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Design and implementation of a high-performance MPI for C# and the common language infrastructure

Published: 20 February 2008 Publication History

Abstract

As high-performance computing enters the mainstream, parallel programming mechanisms (including the Message Passing Interface, or MPI) must be supported in new environments such as C# and the Common Language Infrastructure (CLI). Making effective use of MPI with the CLI requires an interface that reflects the high-level object-oriented nature of C# and that also supports its programming idioms. However, for performance reasons, this high-level functionality must ultimately be mapped to low-level native MPI libraries. In addition to abstraction penalty concerns, avoiding unwanted overhead in this mapping process is significantly complicated by the safety and portability features of the CLI virtual machine, such as garbage collection and just-in-time compilation. In this paper, we describe our approach to using features of C# and the CLI---such as reflection, unsafe code regions, and run-time code generation---to realize an elegant, yet highly efficient, C# interface to MPI. Experimental results demonstrate that there is no appreciable overhead introduced by our approach when compared to the native MS-MPI library.

References

[1]
Purushotham V. Bangalore, Nathan E. Doss, and Anthony Skjellum. MPI++: Issues and Features. In OON-SKI '94, pages 323--338, April 1994.
[2]
Bryan Carpenter, Geoffrey Fox, Sung-Hoon Ko, and Sang Lim. mpiJava 1.2: API specification. Technical Report CRPC-TR99804, Rice University, Center for Research on Parallel Computation, September 1999.
[3]
Bryan Carpenter, Geoffrey Fox, Sung Hoon Ko, and Sang Lim. Object serialization for marshalling data in a Java interface to MPI. In JAVA '99: Proceedings of the ACM 1999 conference on Java Grande, pages 66--71, New York, NY, USA, 1999. ACM Press. national Conference on Intelligent Information Management and Systems, June 1996.
[4]
Bryan Carpenter, Vladimir Getov, Glenn Judd, Anthony Skjellum, and Geoffrey Fox. MPJ: MPI-like message passing for Java. Concurrency: Practice and Experience, 12(11):1019--1038, 2000.
[5]
Keith Farmer. Operator overloading with generics. http://www.codeproject.com/csharp/genericoperators.asp, June 2005.
[6]
Douglas Gregor and Andrew Lumsdaine. MPI.NET: High-performance C# library for message passing. http://www.osl.iu.edu/research/mpi.net/, November 2007.
[7]
Douglas Gregor and Matthias Troyer. Boost.MPI. http://www.generic- programming.org/~dgregor/boost.mpi/doc/, November 2006.
[8]
Glenn Judd, Mark J. Clement, Quinn Snell, and Vladimir Getov. Design issues for efficient implementation of MPI in Java. In Java Grande, pages 58--65, 1999.
[9]
Dennis Kafura and Liya Huang. mpi++: A C++ language binding for MPI. In Proceedings MPI developers conference, Notre Dame, IN, June 1995. http://www.cse.nd.edu/mpidc95/proceedings/papers/html/huang/.
[10]
Prabhanjan Kambadur, Douglas Gregor, Andrew Lumsdaine, and Amey Dharurkar. Modernizing the C++ interface to mpi. In Proceedings of the 13th European PVM/MPI Users' Group Meeting, LNCS, pages 266-274, Bonn, Germany, September 2006. Springer.
[11]
Andrew Kennedy and Don Syme. Design and implementation of generics for the .NET Common Language Runtime. In PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, pages 1-12, New York, NY, USA, 2001. ACM Press.
[12]
Message Passing Interface Forum. MPI, June 1995. http://www.mpi-forum.org/.
[13]
Message Passing Interface Forum. MPI-2, July 1997. http://www.mpi-forum.org/.
[14]
Microsoft. Windows Compute Cluster Server 2003. http://www.microsoft.com/technet/ccs/overview.mspx, August 2005.
[15]
S. Mintchev. Writing programs in JavaMPI. Technical Report MAN-CSPE-02, School of Computer Science, University of Westminster, October 1997.
[16]
Q. Snell, A. Mikler, and J. Gustafson. NetPIPE: A network protocol independent performace evaluator. In IASTED International Conference on Intelligent Information Management and Systems, June 1996.
[17]
Jeffrey M. Squyres, Brian C. McCandless, and Andrew Lumsdaine. Object Oriented MPI: A class library for the message passing interface. In Parallel Object-Oriented Methods and Applications (POOMA '96), Santa Fe, 1996.
[18]
Jeremiah Willcock, Andrew Lumsdaine, and Arch Robison. Using MPI with C# and the Common Language Infrastructure. Concurrency and Computation: Practice & Experience, 17(7-8):895--917, June/July 2005.

Cited By

View all
  • (2021)Towards Modern C++ Language Support for MPI2021 Workshop on Exascale MPI (ExaMPI)10.1109/ExaMPI54564.2021.00009(27-35)Online publication date: Nov-2021
  • (2021)Image Data Handling in a Multinode Environment Using MPIAdvanced Computing and Systems for Security: Volume 1310.1007/978-981-16-4287-6_2(21-34)Online publication date: 3-Nov-2021
  • (2014)Waiting for Godot? the right language abstractions for parallel programming should be here soonUbiquity10.1145/26183952014:June(1-12)Online publication date: 1-Jun-2014
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PPoPP '08: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
February 2008
308 pages
ISBN:9781595937957
DOI:10.1145/1345206
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 February 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. c#
  2. generic programming
  3. message passing interface

Qualifiers

  • Research-article

Conference

PPoPP08
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 1,014 submissions, 23%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)13
  • Downloads (Last 6 weeks)2
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2021)Towards Modern C++ Language Support for MPI2021 Workshop on Exascale MPI (ExaMPI)10.1109/ExaMPI54564.2021.00009(27-35)Online publication date: Nov-2021
  • (2021)Image Data Handling in a Multinode Environment Using MPIAdvanced Computing and Systems for Security: Volume 1310.1007/978-981-16-4287-6_2(21-34)Online publication date: 3-Nov-2021
  • (2014)Waiting for Godot? the right language abstractions for parallel programming should be here soonUbiquity10.1145/26183952014:June(1-12)Online publication date: 1-Jun-2014
  • (2013)McMPIProceedings of the 20th European MPI Users' Group Meeting10.1145/2488551.2488572(25-30)Online publication date: 15-Sep-2013
  • (2012)Parallelism in .Net and javaFundamentals of Multicore Software Development10.1201/b11417-8(79-99)Online publication date: 9-Jan-2012
  • (2011)Survey of MPI ImplementationsDigital Information and Communication Technology and Its Applications10.1007/978-3-642-22027-2_18(206-220)Online publication date: 2011
  • (2011)A Parallel Niched Pareto Evolutionary Algorithm for Multiple Sequence Alignment5th International Conference on Practical Applications of Computational Biology & Bioinformatics (PACBB 2011)10.1007/978-3-642-19914-1_22(157-165)Online publication date: 2011
  • (2010)Efficient MPI support for advanced hybrid programming modelsProceedings of the 17th European MPI users' group meeting conference on Recent advances in the message passing interface10.5555/1894122.1894129(50-61)Online publication date: 12-Sep-2010
  • (2010)Parallel AlineaGA: An island parallel evolutionary algorithm for multiple sequence alignment2010 International Conference of Soft Computing and Pattern Recognition10.1109/SOCPAR.2010.5686492(279-284)Online publication date: Dec-2010
  • (2010)Efficient MPI Support for Advanced Hybrid Programming ModelsRecent Advances in the Message Passing Interface10.1007/978-3-642-15646-5_6(50-61)Online publication date: 2010
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media