skip to main content
10.1145/2488551.2488572acmotherconferencesArticle/Chapter ViewAbstractPublication PageseurompiConference Proceedingsconference-collections
research-article

McMPI: a managed-code MPI library in pure C#

Published: 15 September 2013 Publication History

Abstract

This paper presents McMPI, an entirely new MPI library written in C# using only safe managed-code, and performance results from low-level benchmarks demonstrating ping-pong latency and bandwidth comparable with MS-MPI and MPICH2.
McMPI enables all .Net languages to use MPI messaging without introducing a dependency on unsafe non-managed code, e.g. an existing MPI library. It also takes advantage of .Net thread support to improve intra-node latency.
This paper also discusses support for multiple threads in McMPI and proposes an extension to the MPI Standard that resolves current ambiguities relating to hosting multiple MPI processes in a single operating system process.

References

[1]
Baker, M., Carpenter, B. and Shaft, A. 2006. MPJ Express: Towards Thread Safe Java HPC. 2006 IEEE International Conference on Cluster Computing (2006), 1--10.
[2]
Bornemann, M., Van Nieuwpoort, R. V. and Kielmann, T. 2005. MPJ/Ibis: a flexible and efficient message passing platform for Java. Recent Advances in Parallel Virtual Machine and Message Passing Interface. Springer. 217--224.
[3]
Brightwell, R., Riesen, R. and Maccabe, A. B. 2003. Design, Implementation, and Performance of MPI on Portals 3.0. International Journal of High Performance Computing Applications. 17, 1 (Feb. 2003), 7--19.
[4]
DotGNU Portable.NET: http://www.gnu.org/software/dotgnu/pnet.html. Accessed: 2013-04-01.
[5]
Gamma, E., Helm, R., Johnson, R. and Vlissides, J. 1995. Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley. 49, (1995).
[6]
Gregor, D. and Lumsdaine, A. 2008. Design and implementation of a high-performance MPI for C# and the common language infrastructure. Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming (2008), 133--142.
[7]
Holmes, D. J. 2012. McMPI -- a Managed-code Message Passing Interface Library for High Performance Communication in C#. Doctoral Thesis. The University of Edinburgh.
[8]
Microsoft MPI: http://msdn.microsoft.com/en-us/library/bb524831(VS.85).aspx. Accessed: 2013-04-01.
[9]
Mono: http://www.mono-project.com/Main_Page. Accessed: 2013-04-01.
[10]
MPI Documents: http://www.mpi-forum.org/docs/docs.html. Accessed: 2013-04-01.
[11]
MPICH | High-Performance Portable MPI: http://www.mpich.org/. Accessed: 2013-04-01.
[12]
Plavec, F. .NET to Java Comparison: http://www.eecg.utoronto.ca/~plavec/pub/net_java.pdf. Accessed 2013-04-01.
[13]
Shared Source Common Language Infrastructure 1.0 Release: http://www.microsoft.com/en-gb/download/details.aspx?id=14124. Accessed: 2013-04-01.
[14]
Singularity - Microsoft Research: http://research.microsoft.com/en-us/projects/singularity/. Accessed: 2013-04-01.
[15]
Standard ECMA-334: http://www.ecma-international.org/publications/standards/Ecma-334.htm. Accessed: 2013-04-01.
[16]
Standard ECMA-335: http://www.ecma-international.org/publications/standards/Ecma-335.htm. Accessed: 2013-04-01.
[17]
Taboada, G. L., Ramos, S., Expósito, R. R., Tourino, J. and Doallo, R. 2011. Java in the high performance computing arena: research, practice and experience. Science of Computer Programming. (2011).
[18]
Taboada, G. L., Tourino, J. and Doallo, R. 2003. Performance analysis of Java message-passing libraries on fast ethernet, myrinet and SCI clusters. Cluster Computing, 2003. Proceedings. 2003 IEEE International Conference on (2003), 118--126.
[19]
Taboada, G. L., Touriño, J. and Doallo, R. 2012. F-MPJ: scalable Java message-passing communications on parallel systems. The Journal of Supercomputing. 60, 1 (2012), 117--140.
[20]
Taboada, G. L., Touriño, J. and Doallo, R. 2008. Java Fast Sockets: Enabling high-speed Java communications on high performance clusters. Computer Communications. 31, 17 (2008), 4049--4059.
[21]
Willcock, J., Lumsdaine, A. and Robison, A. 2005. Using MPI with C# and the Common Language Infrastructure. Concurrency and Computation: Practice and Experience. 17, 7-8 (2005), 895--917.

Cited By

View all
  • (2018)Optimizing point‐to‐point communication between adaptive MPI endpoints in shared memoryConcurrency and Computation: Practice and Experience10.1002/cpe.446732:3Online publication date: 12-Mar-2018
  • (2016)MPI SessionsProceedings of the 23rd European MPI Users' Group Meeting10.1145/2966884.2966915(121-129)Online publication date: 25-Sep-2016

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
EuroMPI '13: Proceedings of the 20th European MPI Users' Group Meeting
September 2013
289 pages
ISBN:9781450319034
DOI:10.1145/2488551
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 the author(s) 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

  • ARCOS: Computer Architecture and Technology Area, Universidad Carlos III de Madrid

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 September 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. .Net
  2. C#
  3. MPI
  4. managed-code

Qualifiers

  • Research-article

Funding Sources

Conference

EuroMPI '13
Sponsor:
  • ARCOS
EuroMPI '13: 20th European MPI Users's Group Meeting
September 15 - 18, 2013
Madrid, Spain

Acceptance Rates

EuroMPI '13 Paper Acceptance Rate 22 of 47 submissions, 47%;
Overall Acceptance Rate 66 of 139 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2018)Optimizing point‐to‐point communication between adaptive MPI endpoints in shared memoryConcurrency and Computation: Practice and Experience10.1002/cpe.446732:3Online publication date: 12-Mar-2018
  • (2016)MPI SessionsProceedings of the 23rd European MPI Users' Group Meeting10.1145/2966884.2966915(121-129)Online publication date: 25-Sep-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media