Abstract
The Message Passing Interface (MPI) standard continues to dominate the landscape of parallel computing as the de facto API for writing large-scale scientific applications. But the critics argue that it is a low-level API and harder
to practice than shared memory approaches. This paper addresses the issue of programming productivity by proposing
a high-level, easy-to-use, and e�cient programming API that hides and segregates complex low-level message passing code from the application specific code. Our proposed API is inspired by communication patterns found in Gadget-2, which is an MPI-based parallel production code for cosmological N-body and hydrodynamic simulations. In this paper we analyze Gadget-2 with a view to understanding what high-level Single Program Multiple Data (SPMD) communication abstractions might be developed to replace the intricate use of MPI in such an irregular application—and do so without compromising the e�fficiency. Our analysis revealed that the use of low-level MPI primitives—bundled with the computation code—makes Gadget-2 di�cult to understand and probably hard to maintain. In addition, we found out that the original Gadget-2 code contains a small handful of—complex and recurring—patterns of message passing. We also noted that these complex patterns can be reorganized into a higher level communication library with some modifications to the Gadget-2 code. We present the implementation and
evaluation of one such message passing pattern (or schedule) that we term Collective Asynchronous Remote Invocation (CARI). As the name suggests, CARI is a collective variant of Remote Method Invocation (RMI), which is an attractive, high-level, and established paradigm in distributed systems programming. The CARI API might be implemented in several ways—we develop and evaluate two versions of this API on a compute cluster. The performance
evaluation reveals that CARI versions of the Gadget-2 code perform as well as the original Gadget-2 code but the level of abstraction is raised considerably.
Original language | English |
---|---|
Publication status | Published - 2011 |
Event | International Conference on Computational Science - Nanyang Technological University, Singapore, Singapore Duration: 1 Jun 2011 → 3 Jun 2011 |
Conference
Conference | International Conference on Computational Science |
---|---|
Abbreviated title | ICCS 2011 |
Country/Territory | Singapore |
City | Singapore |
Period | 1/06/11 → 3/06/11 |