Current Work
Why ViC*?

Virtual-Memory C* Compiler Project

ViC* is a system for data-parallel computing with parallel data so large that it does not fit in main memory. Although one could simply use the native demand paging found on most systems for such "out-of-core" problems, ViC* is able to take advantage of the structure within data-parallel programs and architectural advances such as parallel disk systems to deliver significantly better performance.

The ViC* system consists of a compiler and a run-time system. The compiler translates C* programs with shapes declared outofcore, which describe parallel data stored on disk. The compiler output is a SPMD-style program in standard C with I/O and library calls added to efficiently access out-of-core parallel data. The ViC* compiler also applies several program transformations to improve out-of-core data layout and access. The run-time system performs parallel disk accesses and invokes optimal out-of-core algorithms developed for the Parallel Disk Model (PDM) when appropriate.

The portable software interface that provides the PDM appearance is publicly available, by request. Click on the "Software" button above or here for more information.

Rather than flood your web browser with a list of the virtues of ViC*, please download a copy of the latest paper on ViC*, a Dartmouth technical report that you'll find here. It was also presented at HIPS '98, the Third International workshop on High-Level Programming Models and Supportive Environments to be held in conjunction with IPPS/SPDP 1998.

Thanks to James Clippinger for redesigning the ViC* web site.
Thomas H. Cormen <>
Last modified: Thu May 21 12:46:33 1998