Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications

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...

Full description

Bibliographic Details
Main Authors: Ahmad, Wakeel, Carpenter, Bryan, Shafi, Aamir, Shafi, Muhammad Aamir
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:en_US
Published: Elsevier 2015
Online Access:http://hdl.handle.net/1721.1/95929
_version_ 1811077437844357120
author Ahmad, Wakeel
Carpenter, Bryan
Shafi, Aamir
Shafi, Muhammad Aamir
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Ahmad, Wakeel
Carpenter, Bryan
Shafi, Aamir
Shafi, Muhammad Aamir
author_sort Ahmad, Wakeel
collection MIT
description 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 effcient 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 effciency. Our analysis revealed that the use of low-level MPI primitives—bundled with the computation code—makes Gadget-2 diffcult 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 higherlevel 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.
first_indexed 2024-09-23T10:43:01Z
format Article
id mit-1721.1/95929
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T10:43:01Z
publishDate 2015
publisher Elsevier
record_format dspace
spelling mit-1721.1/959292022-09-27T14:26:45Z Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications Ahmad, Wakeel Carpenter, Bryan Shafi, Aamir Shafi, Muhammad Aamir Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Shafi, Muhammad Aamir 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 effcient 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 effciency. Our analysis revealed that the use of low-level MPI primitives—bundled with the computation code—makes Gadget-2 diffcult 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 higherlevel 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. 2015-03-10T16:31:21Z 2015-03-10T16:31:21Z 2011-05 Article http://purl.org/eprint/type/JournalArticle 18770509 http://hdl.handle.net/1721.1/95929 Ahmad, Wakeel, Bryan Carpenter, and Aamir Shafi. “Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications.” Procedia Computer Science 4 (2011): 26–35. en_US http://dx.doi.org/10.1016/j.procs.2011.04.004 Procedia Computer Science Creative Commons Attribution http://creativecommons.org/licenses/by-nc-nd/3.0/ application/pdf Elsevier Elsevier
spellingShingle Ahmad, Wakeel
Carpenter, Bryan
Shafi, Aamir
Shafi, Muhammad Aamir
Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
title Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
title_full Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
title_fullStr Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
title_full_unstemmed Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
title_short Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
title_sort collective asynchronous remote invocation cari a high level and effcient communication api for irregular applications
url http://hdl.handle.net/1721.1/95929
work_keys_str_mv AT ahmadwakeel collectiveasynchronousremoteinvocationcariahighlevelandeffcientcommunicationapiforirregularapplications
AT carpenterbryan collectiveasynchronousremoteinvocationcariahighlevelandeffcientcommunicationapiforirregularapplications
AT shafiaamir collectiveasynchronousremoteinvocationcariahighlevelandeffcientcommunicationapiforirregularapplications
AT shafimuhammadaamir collectiveasynchronousremoteinvocationcariahighlevelandeffcientcommunicationapiforirregularapplications