Implementing Scoped Behavior for Flexible Distributed Data Sharing

  • Authors:
  • Paul Lu

  • Affiliations:
  • -

  • Venue:
  • IEEE Concurrency
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Distributed-memory hardware platforms, such as a network of workstations, are attractive because of their ubiquitousness and good price-performance. However, there are high communications overheads associated with sharing data between distributed memories. While message-passing programming systems provide the greatest low-level flexibility to optimize the overheads, shared-data systems provide a higher level of abstraction. Ideally, users would like to have both a high level of abstraction and the flexibility to optimize a program for each data-sharing pattern and for each portion of the source code, such as a particular loop or phase. A novel technique to support this form of optimization flexibility is scoped behavior. In the Aurora distributed shared data system, the programmer instantiates shared-data objects and uses scoped behaviour to incrementally tune applications on a per-object and per-context basis. This article details how a class library implements shared-data objects as abstract data types and how scoped behaviour implements the optimizations within standard C++. Using a network of workstations connected by an ATM switch, the author shows that the performance of Aurora is comparable to message passing (using MPI) for three applications.