Programming with Shared Data Abstractions

We present a programming system based around a set of highly concurrent, highly distributed data structures. These shared abstract data types offer a uniform interface onto a set of possible implementations, each optimised for particular patterns of use and more relaxed coherence conditions in the data. They allow applications written using a shared data model to approach the performance of message passing implementations through a process of pattern analysis and coherence relaxation. We describe the programming system with reference to a sample application solving the travelling salesman problem. Starting from a naive direct implementation we show significant speed-ups on a network of workstations.

[1]  Victor J. Rayward-Smith,et al.  Efficiency considerations in the implementation of parallel branch-and-bound , 1993, Ann. Oper. Res..

[2]  Willy Zwaenepoel,et al.  Munin: distributed shared memory based on type-specific memory coherence , 1990, PPOPP '90.

[3]  Henri E. Bal,et al.  Using the Cowichan problems to assess the usability of Orca , 1996, IEEE Parallel Distributed Technol. Syst. Appl..

[4]  Simon A. Dobson,et al.  Towards a theory of shared data in distributed systems , 1996, Software Engineering for Parallel and Distributed Systems.

[5]  Andy J. Wellings,et al.  A System for Building Scalable Parallel Applications , 1992, Programming Environments for Parallel Computing.

[6]  Peter M. Dew,et al.  Abstract machine models for highly parallel computers , 1995 .

[7]  Peter M. Dew,et al.  Concurrent sharing through abstract data-types: a case study , 1997 .

[8]  W. F. McColl,et al.  Bulk synchronous parallel computing , 1995 .

[9]  John A. Chandy,et al.  Distributed Object Oriented Data Structures and Algorithms for VLSI CAD , 1996, IRREGULAR.

[10]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[11]  Greg Nelson,et al.  Systems programming in modula-3 , 1991 .

[12]  Edward Wobber,et al.  Network objects , 1994, SOSP '93.

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[14]  Henri E. Bal,et al.  Orca: a language for distributed programming , 1990, SIGP.

[15]  Scott B. Baden,et al.  Flexible Communication Mechanisms for Dynamic Structured Applications , 1996, IRREGULAR.

[16]  Jonathan M. D. Hill,et al.  Collection types for database programming in the BSP model , 1997, PDP.