The Virtual Shared Memory Paradigms
Parallel processing has long been heralded as the next quantum breakthrough
in high performance computing. However, over time, it has become clear that
efficient and practical parallel and distributed computing requires more than
just a number of fast processors and a high speed interconnect. SCAI
provides application developers with robust and reliable software tools that
allow their existing sequential programs to be converted easily for parallel
execution. When developers have the right tool, they can create programs for
both advanced parallel architectures and the emerging parallel computing
environment of networked workstations.
SCAI's products, Linda and Paradise, are based on the concept of Virtual Shared
Memory (VSM). A VSM is a shared object repository that can be used to store data
that must be shared among the pieces of a parallel or distributed program. It is
"virtual" in the sense that no physically-shared memory is required to create a
VSM, so VSMs are useful in a variety of computing environments ranging from
shared-memory multiprocessor machines to parallel mainframes to workstation or
By combining VSMs with suitable application programming interfaces (APIs), it
is possible to build distributed programming tools or middleware environments
that have the following desirable properties:
High Performance: VSM implementations can be tailored to the
particular processor/network architecture used in practice, so they can deliver
Ease of Use: APIs for VSM systems can be very
simple, since they need only include a small number of operations (things like
store, copy, and retrieve). Such APIs may be implemented as extensions to
standard programming-languages, thereby facilitating compile-time preprocessing
to catch a wide range of errors and to provide optimized performance of
Data Persistence and Accessibility: VSM data is
available concurrently to any process that knows about the VSM; moreover, VSMs
can function as random access memories, just as ordinary memories do.
Fault Tolerance: VSMs can support transactional
semantics, which makes it possible to develop fault-tolerant applications in a
particularly straightforward way.
Dynamic Scheduling: VSM-based distributed
applications can adapt easily to changes in the processor or job pool that
demand dynamic reassignment of resources to meet evolving system requirements.
Heterogeneity: VSMs offer a natural mechanism for
transferring data among heterogeneous systems, since the VSM can serve as a
Load Balancing: VSMs can use data "pull"
semantics, rather than the data "push" semantics more common in other middleware
technologies. This makes it extremely easy to load balance among processors,
since each processor can take just as much or as little data as it can handle.
Manageability: Since VSMs store objects rather
than raw bits, VSM systems can offer visualization and management tools that
make it easy to see what is stored in the system and what operations are in
progress. A VSM system that makes use of a VSM server to host the individual
VSMs can also offer centralized management tools to control the entire system.
Security: From a security perspective, VSMs have
many characteristics similar to ordinary file systems. Access to an individual
VSM requires a "handle," analogous to a file handle, that is obtained from a
system-wide authority (a "handle server"). By limiting access to handles and
restricting the capabilities associated with each handle, it is easy to control
both who has access to each VSM, and what operations each user may perform.
Simple Hardware Enhancement and Upgrade
Paths: For VSM systems that use "pull" semantics, hardware enhancements and
upgrades can be extremely simple. Newly added processors will start to interact
as soon as they're connected, increasing the power of the system immediately.
Replacement can be accomplished by shutting down a particular processor and
installing a new one in its place. Most often, distributed applications need not
even know about such changes.
For more information we've developed both a white paper on VSM and a comparison between VSM and the message-passing paradigm
for parallel computing.