Process-Oriented Collective Operations

Distributing process-oriented programs across a cluster of machines re- quires careful attention to the effects of network latency. The MPI standard, widely used for cluster computation, defines a number of collective operations: efficient, reusable algorithms for performing operations among a group of machines in the clus- ter. In this paper, we describe our techniques for implementing MPI communication patterns in process-oriented languages, and how we have used them to implement collective operations in PyCSP and occam- on top of an asynchronous messaging framework. We show how to make use of collective operations in distributed process- oriented applications. We also show how the process-oriented model can be used to increase concurrency in existing collective operation algorithms.

[1]  Frederick R. M. Barnes,et al.  Blocking System Calls in KRoC/Linux , 2000 .

[2]  Otto J. Anshus,et al.  Configurable Collective Communication in LAM-MPI , 2002 .

[3]  Brian Vinter,et al.  PATHS - Integrating the Principles of Method-Combination and Remote Procedure Calls for Run-Time Configuration and Tuning of High-Performance Distributed Applications YYYY No org found YYY , 2001 .

[4]  Brian Vinter,et al.  PyCSP - Communicating Sequential Processes for Python. , 2007 .

[5]  Mario Schweigler,et al.  A unified model for inter- and intra-processor concurrency , 2006 .

[6]  John Markus Bjørndalen,et al.  EventSpace - Exposing and Observing Communication Behavior of Parallel Cluster Applications , 2003, Euro-Par.

[7]  Simon L. Peyton Jones,et al.  Extending the Haskell foreign function interface with concurrency , 2004, Haskell '04.

[8]  Wilson Ifill,et al.  PyCSP-Communicating Sequential Processes for Python , 2007 .

[9]  Brian Vinter,et al.  Scalable processing and communication performance in a multi-media related context , 2002, Proceedings. 28th Euromicro Conference.

[10]  Henri E. Bal,et al.  MagPIe: MPI's collective communication operations for clustered wide area systems , 1999, PPoPP '99.

[11]  Xin Yuan,et al.  CC--MPI: a compiled communication capable MPI prototype for ethernet switched clusters , 2003, PPoPP '03.

[12]  John Markus Bjørndalen,et al.  CoMPI- Configuration of Collective Operations in LAM/MPI Using the Scheme Programming Language , 2006, PARA.

[13]  Greg Burns,et al.  LAM: An Open Cluster Environment for MPI , 2002 .

[14]  George Bosilca,et al.  Open MPI: Goals, Concept, and Design of a Next Generation MPI Implementation , 2004, PVM/MPI.