The International Conference for High Performance Computing, Networking, Storage and Analysis
Interoperating MPI and Charm++ for Productivity and Performance.
Authors: Nikhil Jain (University of Illinois at Urbana-Champaign), Abhinav Bhatele (Lawrence Livermore National Laboratory), Jae-Seung Yeom (Lawrence Livermore National Laboratory), Mark F. Adams (Lawrence Berkeley National Laboratory), Francesco Miniati (ETH Zurich), Chao Mei (Google), Laxmikant Kale (University of Illinois at Urbana-Champaign)
Abstract: This poster studies interoperation among two parallel languages that differ with respect to the driver of program execution, Charm++ and MPI. We describe the challenges in enabling interoperation between MPI, a user-driven language, and Charm++, a system-driven language. We present techniques for managing important attributes of a program, such as the control flow, resource sharing, and data sharing, in an interoperable environment. We show that our implementation enables interoperation between MPI and Charm++ via minor additions to the source code and promotes reuse of existing software. Finally, we study the application of the presented techniques and demonstrate the benefits of interoperation through several case studies using production codes including Chombo, EpiSimdemics, NAMD, FFTW, and MPI-IO, executed on IBM Blue Gene/Q and Cray XE6.