|
|
Shared Virtual Memory Library for clustered PC |
Welcome to SVMlib! In this project, we develop a page based, user-level
shared
virtual memory (SVM) subsystem for the Windows
NT operating system. What's SVM, anyway? To make things complicated,
it is often also called DSM.
Basically, it is an emulation of shared memory in a distributed memory
environment, like clustered NT based workstations.
Objectives
The goal is to run shared memory codes like the
SPLASH-2
benchmark suite on a cluster of NT workstations. What makes SVMlib
different from other software SVM implementations ?
-
It runs on Windows NT, while most known SVM systems run on Unix Boxes,
Mach or Chorus. However, we use a Win32 emulation layer called nt2unix
to compile and run the SVMlib code also on UNIX.
-
We are focussing on integrating scalable
distributed synchronization algorithms into SVM systems. Efficient
distributed synchronization primitives are necessary at user level as well
as at SVM level to implement (especially weaker) consistency models. SVMlib
will allow to exactly trace synchronization bottlenecks in parallel applications
by instrumenting and visualizing the distributed synchronization behaviour.
-
While supporting commodity protocol families like TCP/IP, SVMlib also employs
high performance message-passing on PC's, namely using Dolphin's
implementation of the Scalable
Coherent Interface (SCI).
-
SVMlib implements user-configurable consistency
models. We support Sequential Consistency (MRSW - multiple reader single
writer and SRSW - single reader single writer) and distributed synchronization
associated Lazy
Release Consistency (MRMW - multiple reader multiple writer)
protocols.
-
SVMlib supports high level distributed services like parallel shared virtual
memory allocation.
-
First steps are made to implement Lazy Release Consistency using SCI's
remote read/write facilities.
Current State
We have a prototype supporting Sequential Consistency with SRSW and MRSW
protocols. The SVMlib library compiles and runs on Windows NT 4.0 as well
as Solaris x86. Besides the native SVMlib C++ API (Application Programmers
Interface), SVMlib currently offers the following additional API's for
reasons of compatibility with (most of) the rest of the shared memory world:
SVMlib itself is structured as a set of well-defined communicating managers
and servers - each with different privileges and responsibilities:
SVMlib related papers
- Karsten Scholtyssik, Marcus Dormanns:
Simplifying the use of SCI shared memory by
using software SVM techniques,
2nd Workshop Cluster-Computing.
Published in: Wolfgang Rehm, Theo Ungerer (Ed.), Cluster-Computing,
Tagungsband zum 2. Workshop, 25./26. März 1999,
Universität Karlsruhe (CSR-99-02)
-
Sven M. Paas, Thomas Bemmerl, Karsten Scholtyssik: Win32 API Emulation
on UNIX for Software DSM, 2nd
USENIX Windows NT Symposium, August 3-5, 1998, Seattle, Washington
-
Karsten Scholtyssik: Laufzeitbeobachtung
und Evaluierung verteilter Synchronisationsprotokolle, Diploma
Thesis, RWTH Aachen [9/15/97 - 3/16/98]
-
Peter Oertelt: Entwurf und Implementierung parallel nutzbarer Speicherverwaltungsalgorithmen,
Diploma Thesis, RWTH Aachen [06/19/97 - 12/20/97]
-
Sven M. Paas, Marcus Dormanns, Thomas Bemmerl, Karsten Scholtyssik, Stefan
Lankes: Computing on a Cluster of PCs: Project Overview and Early Experiences,
1st
Workshop Cluster-Computing, TU Chemnitz-Zwickau, November 6-7,
1997
-
Sven M. Paas, Karsten Scholtyssik: Efficient Distributed Synchronization
within an all-software DSM system for clustered PCs, 1st
Workshop Cluster-Computing, TU Chemnitz-Zwickau, November 6-7,
1997
Related projects
We are doing page-based SVM on PC
Clusters.
For an excellent overview, see Pete Keleher's page on
Page-based
Software DSM. M. Rasit Eskicioglu maintains a great
DSM
bibliography. More specifically, there are at least two other projects
dealing with SVM on Windows NT:
-
Brazos (Rice Univ., Dept.
of Electrical and Computer Engineering)
-
Millipede (Technion
- Israel Institute of Technology)
|
|
|