首页> 外文期刊>Procedia Computer Science >Collective Asynchronous Remote Invocation (CARI): A High-Level and Effcient Communication API for Irregular Applications
【24h】

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

机译:集体异步远程调用(CARI):针对不规则应用程序的高级高效通信API

获取原文
           

摘要

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.
机译:作为编写大型科学应用程序的事实上的API,消息传递接口(MPI)标准继续主导着并行计算领域。但是批评者认为,这是一个低级的API,比共享内存方法更难实践。本文通过提出一种高级,易于使用且高效的编程API来解决编程生产率的问题,该API将复杂的低级消息传递代码与特定于应用程序的代码隐藏和隔离。我们提出的API受到Gadget-2中通讯模式的启发,该工具是基于MPI的并行生产代码,用于宇宙N体和流体动力学模拟。在本文中,我们对Gadget-2进行了分析,以了解可以开发出什么样的高级单程序多数据(SPMD)通信抽象来代替在这种不规则应用中对MPI的复杂使用,并且在不影响效率的情况下进行操作。我们的分析表明,使用低级MPI原语(与计算代码捆绑在一起)会使Gadget-2难以理解并且可能难以维护。此外,我们发现原始的Gadget-2代码包含少量的消息传递模式(复杂且重复出现)。我们还注意到,通过对Gadget-2代码进行一些修改,可以将这些复杂的模式重组为更高级别的通信库。我们介绍了一种这样的消息传递模式(或时间表)的实现和评估,我们称之为集体异步远程调用(CARI)。顾名思义,CARI是远程方法调用(RMI)的集体变体,它是分布式系统编程中一种有吸引力的,高级的,已建立的范例。 CARI API可能以多种方式实现-我们在计算集群上开发和评估此API的两个版本。性能评估显示,Gadget-2代码的CARI版本的性能与原始Gadget-2代码一样好,但是抽象级别却大大提高了。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号