LFBS Home Lehrstuhl für Betriebssysteme RWTH
Home > Research > Past Projects > SVMlib  

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.


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:
[Clickable ImageMap]

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)