Step 1 of 8: Definition
Distributed shared-memory systems implement the
shared-memory abstraction on multi-computer architectures,
combining the scalability of network based architectures with
the convenience of shared-memory programming.
A cluster is a form of multi-computer system which uses a collection
of independent computers that are connected by a high-speed
interconnection network. Since all
communication between concurrently executing processes must
be performed over the network, in such a system, until recently
the programming model was limited to a message passing
paradigm. However, recent systems have implemented the
shared-memory abstraction on top of message-passing
distributed-memory systems. The shared memory abstraction
gives these systems the illusion of a physically shared memory
and allows programmers to use the shared-memory paradigm.