Implementing High Performance Remote Method Invocation in CCA
ABSTRACT We report our effort in engineering a high performance remote method invocation (RMI) mechanism for the Common Component Architecture (CCA). This mechanism provides a highly efficient and easy-to-use mechanism for distributed computing in CCA, enabling CCA applications to effectively leverage parallel systems to accelerate computations. This work is built on the previous work of Babel RMI. Babel is a high performance language interoperability tool that is used in CCA for scientific application writers to share, reuse, and compose applications from software components written in different programming languages. Babel provides a transparent and flexible RMI framework for distributed computing. However, the existing Babel RMI implementation is built on top of TCP and does not provide the level of performance required to distribute fine-grained tasks. We observed that the main reason the TCP based RMI does not perform well is because it does not utilize the high performance interconnect hardware on a cluster efficiently. We have implemented a high performance RMI protocol, HPCRMI. HPCRMI achieves low latency by building on top of a low-level portable communication library, Aggregated Remote Message Copy Interface (ARMCI), and minimizing communication for each RMI call. Our design allows a RMI operation to be completed by only two RDMA operations. We also aggressively optimize our system to reduce copying. In this paper, we discuss the design and our experimental evaluation of this protocol. Our experimental results show that our protocol can improve RMI performance by an order of magnitude.
- SourceAvailable from: Paulo Henrique Lopes Silva
Conference Paper: Connection Mechanisms of CCA Components for Parallel Applications[Show abstract] [Hide abstract]
ABSTRACT: With the increasing availability of high-performance massively parallel computer systems, sophisticated scientific simulation has grown rapidly. Besides, the fast growth of high bandwidth wide area networks has allowed the use of PC clusters and/or multiprocessors machines. In order to handle the complexity of such applications, software component technology appears very appealing. However, most current software component models do not provide any support to transparently and efficiently embed parallel code into components. This paper deals with communication between CCA (Common Component Architecture) components and parallel programs to support parallel components. Preliminary performance results are reasonable and just a little overhead is introduced in a pure parallel application.Computer Systems (WSCAD-SSC), 2012 13th Symposium on; 01/2012