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 PC clusters.

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 maximum performance.

  • 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 individual operations.

  • 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 platform-independent repository.

  • 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.

Why Linda?
 About VSM

Manual (pdf)
Copyright © 2007 Scientific Computing Associates, Inc.