Charm++ & MPI: Combining the Best of Both Worlds

IEEE International Parallel and Distributed Processing Symposium (IPDPS) 2015
Pulication Type: Paper
Download: pdf ps

Abstract

MPI and Charm++ embody two distinct perspectives for writing parallel programs. While MPI provides a processor-centric, user-driven model for developing parallel codes, Charm++ supports work-centric, overdecomposition-based, system-driven parallel programming. One or the other can be the best or most natural fit for distinct modules that constitute a parallel application. In this paper, we present a framework that enables hybrid parallel programming with MPI and Charm++, and allows programmers to develop different modules of a parallel application in these two languages while facilitating smooth interoperation. We describe the challenges in enabling interoperation between MPI and Charm++, and present techniques for managing the control flow and resource sharing in such scenarios. Finally, we demonstrate the benefits of interoperation between MPI and Charm++ through several case studies that use production applications and libraries, including CHARM/Chombo, EpiSimdemics, NAMD, FFTW, MPI-IO and ParMETIS.

Text Ref


						

BibTex

@inproceedings{jain:ipdps2015,
  author = {Jain, Nikhil and Bhatele, Abhinav and Yeom, Jae-Seung and Adams, Mark F. and Miniati, Francesco and Mei, Chao and Kale, Laxmikant V.},
  title = {Charm++ \& {MPI}: Combining the Best of Both Worlds},
  booktitle = {Proceedings of the IEEE International Parallel \& Distributed Processing Symposium (to appear)},
  series = {IPDPS '15},
  year = {2015},
  month = may,
  note = {LLNL-CONF-663041},
  publisher = {IEEE Computer Society},
}