Practical parallel remote method invocation for the Babel compiler

Parallel components are types of software components that contain Single Program Multiple Data (SPMD) parallel code and are used and defined by the Common Component Architecture (CCA) component model. Parallel Remote Method Invocation (PRMI) defines a communication paradigm between two parallel components of this kind. Within the CCA community, we define PRMI to include two parts: collective invocations and data redistribution. In this paper, wedevise a way to build PRMI onto the Babel compiler, which is a central supporting technology of CCA. We perform this integration cleanly, by preserving Babel's design principles and allowing user choice in the wire protocol and parallel communication library. In addition to this, we define a novel set of synchronization options for PRMI that allow trading off synchronization for better performance while notendangering the accuracy of the result.

[1]  James Arthur Kohl,et al.  Data redistribution and remote method invocation in parallel component architectures , 2005, 19th IEEE International Parallel and Distributed Processing Symposium.

[2]  Denis Caromel,et al.  Collective Interfaces for Distributed Components , 2007, Seventh IEEE International Symposium on Cluster Computing and the Grid (CCGrid '07).

[3]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[4]  Scott R. Kohn,et al.  Toward a Common Component Architecture for High-Performance Scientific Computing , 1999, HPDC.

[5]  Scott R. Kohn,et al.  Divorcing Language Dependencies from a Scientific Software Library , 2001, PPSC.

[6]  Steven G. Parker,et al.  M × N Data Redistribution Through Parallel Remote Method Invocation , 2005, Int. J. High Perform. Comput. Appl..

[7]  André Ribes,et al.  Handling Exceptions Between Parallel Objects , 2004, Euro-Par.

[8]  Peter H. Beckman,et al.  Efficient coupling of parallel applications using PAWS , 1998, Proceedings. The Seventh International Symposium on High Performance Distributed Computing (Cat. No.98TB100244).

[9]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[10]  James Arthur Kohl,et al.  Cumulvs: Providing Fault Toler. Ance, Visualization, and Steer Ing of Parallel Applications , 1996, Int. J. High Perform. Comput. Appl..

[11]  Susan M. Mniszewski,et al.  PAWS: collective interactions and data transfers , 2001, Proceedings 10th IEEE International Symposium on High Performance Distributed Computing.

[12]  Steven G. Parker,et al.  Imprecise Exceptions in Distributed Parallel Components , 2004, Euro-Par.

[13]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .