The Coherent Virtual Machine (CVM) software
Distributed Shared Memory (DSM) system is being developed here at the
University of Maryland. Project goals include:|
- Multiple protocol support - CVM's initial configuration provides four
memory models, single- and multiple-writer versions of
lazy release consistency, sequential consistency, and eager release
- Extensibility - CVM's
source is freely available, and modules are written in C++.
New classes can easily be derived from a master Protocol class, allowing
new protocols to be easily incorporated.
- Multi-threading support - CVM is multi-threaded, allowing
overlap of computation and communication through context switching.
- On-line reconfiguration - CVM uses thread mobility to
support automatic online
reconfiguration. Thread migration will be used to adjust the degree of
parallelism, to balance load, and to minimize communication requirements.
- Heterogeneity - CVM (version 1.0) will allow execution on
heterogeneous clusters of workstations.
- Race detection - We built a practical online race detection
system that is guaranteed to catch all races that actually occurred during
an execution, with an order of magnitude less overhead than previous systems.
- Tapes - Tape-based synchronization libraries are layered on top
of existing consistency protocols and synchronization interfaces, and are
used to direct data movement. Tapes allow shared accesses to be recorded,
grouped, and manipulated at a very high level. These tapes can be used to
predict future data accesses and to eliminate subsequent misses by moving
data before it is needed.