The use of multiprocessors to increase computing power is attractive. Two kinds of parallel processors have become popular: tightly coupled shared-memory multiprocessors and distributed-memory multiprocessors. A tightly coupled multiprocessor system, consisting of multiple CPUs and a single global physical memory, is more straightforward to program. This type of multiprocessor has a bottleneck, however: main memory is accessed via a common bus.
Distributed-memory multiprocessors do not suffer from this drawback. These systems consist of a collection of independent computers connected by a high-speed interconnection network. If designers choose the network topology carefully, the system can contain many orders of magnitude more processors than a tightly coupled system. The shared-memory abstraction gives these systems the illusion of physically shared memory and allows programmers to use the shared-memory paradigm.
Distributed shared memory (DSM) provides a virtual address space shared among processes on loosely coupled processors. DSM systems have been implemented using three approaches:
hardware implementations that extend traditional caching techniques to scalable architectures,
operating system and library implementations that achieve sharing and coherence through virtual memory-management mechanisms, and
compiler implementations where shared accesses are automatically converted into synchronization and coherence primitives.
Research has shown distributed shared memory systems to be viable. The performance of DSM is greatly affected by memory-access patterns and replication of shared data. The performance results to date are preliminary. Most DSM systems are experimental or are prototypes consisting of only a few nodes. Nevertheless, research has proven that DSM effectively supports parallel processing, and it promises to be a fruitful and exciting area of research.
This paper gives an integrated overview of important DSM issues: memory coherence, design choices, and implementation methods. It cites and compares major research projects and DSM prototype implementations. The paper is a useful and readable introduction to DSM issues, even though it contains a lot of information compressed into nine pages.