Skip to main content
Article thumbnail
Location of Repository

Process-Oriented Collective Operations

By John Markus Bjørndalen and Adam T. Sampson


Distributing process-oriented programs across a cluster of machines requires 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 cluster. 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-pi on top of an asynchronous messaging framework. We show how to make use of collective operations in distributed processoriented applications. We also show how the process-oriented model can be used to increase concurrency in existing collective operation algorithms

Topics: QA76
Publisher: IOS Press
Year: 2008
OAI identifier:

Suggested articles


  1. (2006). A Unified Model for Inter- and Intra-processor Concurrency.
  2. (2000). Blocking System Calls in KRoC/Linux.
  3. (2007). Brian Vinter, and Otto Anshus. PyCSP - Communicating Sequential Processes for Python. In
  4. (2003). CC-MPI: a compiled communication capable MPI prototype for Ethernet switched clusters. doi
  5. (2007). CoMPI - Configuration of Collective Operations in LAM/MPI using the Scheme Programming Language. doi
  6. (2002). Configurable Collective Communication in LAM-MPI.
  7. (2003). EventSpace - Exposing and observing communication behavior of parallel cluster applications. doi
  8. (2004). Extending the Haskell foreign function interface with concurrency. doi
  9. (2003). Improving the Speedup of Parallel and Distributed Applications on Clusters and Multi-Clusters.
  10. (1994). LAM: An Open Cluster Environment for MPI.
  11. (1999). MagPIe: MPI’s collective communication operations for clustered wide area systems. doi
  12. (2004). Open MPI: Goals, concept, and design of a next generation MPI implementation. doi
  13. Pyro: Python remote objects.
  14. (2002). Scalable Processing and Communication Performance in a Multi-Media Related Context. Euromicro doi
  15. (2002). Steps: A Performance Monitoring and Visualization Tool for Multicluster Parallel Programs,
  16. (2006). The C10K problem,
  17. The occam-π programming language. doi
  18. (2006). The PATHS Visualizer.
  19. The self-pipe trick.

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.