Shared Memory

Shared memory is a simple and elegant model both for practical and theoretical work. All main-stream programming languages use shared memory as their memory model. The basis for theoretical parallelism comes from shared memory (PRAM). Basically, shared-memory is easy to understand and use. These properties translate directly into increased productivity, whether constructing new software, developing new algorithms, or building theoretical models.

Having extolled the virtues of shared-memory, it is important to point out that distributed (non-shared) memory will always exist. Therefore, mechanisms must exist to deal with it. Nevertheless, by extending the bounds of shared memory, both programmers and theoreticians can significantly increase their productivity in an ever increasing domain; the current limits for shared-memory are unknown.