Distributed Shared Memory

Overview of area

``A Comprehensive Bibliography of Distributed Shared Memory'' by Eskicioglu (U. of New Orleans). Operating Systems Review. 1995.

``Distributed Shared Memory: Concepts and Systems'' by Protic, Tomasevic and Milutinovic (U. of Belgrade). IEEE Parallel & Distributed Technology. Summer 1996. Slides: http://www.cs.wpi.edu/~cs535/s03/proticslides/proticslides.html

Additional Work

``OpenMP on Networks of Workstations'' by Lu, Hu and Zwaenepoel (Rice U). Proceedings of SuperComputing November 1998.

Look at using DSM in a network of workstations (NOWs). Use OpenMP API (http://www.openmp.org) as a basis to build programs using DSM through a standard API.

Build on previous Treadmarks DSM.

OpenMP API for Fortran with parallel threads. Allow applications to be annotated to share parallelism. Focus is for multiprocessor.

Parallel directives

Variable types:

Synchronization directives:

Modifications to Standard

Modifications for DSM environment:

  1. variables in parallel region default to private rather than shared
  2. remove flush and introduce condition variables and semaphores.

Default of private is better for DSM than shared. Shared variables are more costly in DSM environment than multiprocessor environment.

Implementation

Compiler for subset of OpenMP. Targets the Treadmarks software DSM system.

Treadmarks uses lazy invalidation of release consistency.

Results

Figure 5 shows relative speedup for five applications using OpenMP implementation, hand-written Treadmarks implementation and MPI (both shared memory multiprocessor and distributed memory machines).

Additional Work

Extend to Networks of SMPs.

Looking at contention caused during the transition from sequential to parallel portions of code. Look at replicating the sequential portions across machines.