We have developed a freely-available distributed shared memory system named Quarks. It consists of a user-level library and associated header files that support DSM on collections of Unix workstations. The released version runs on SunOS 4.1/SPARC, HP-UX/PA-RISC, IRIX 5.2/MIPS machines, and 4.3BSD/M68k machines. Quarks includes a number of modern DSM features such as support for multiple consistency protocols (e.g., a write invalidate protocol providing strict consistency, a delayed write update protocol providing release consistency, etc.) and multithreading to mask communication latency. An effort has been made to make adding new protocols easy, allowing the research community to experiment with new protocols, and allowing compiler writers to develop specialized protocols (as in Blizzard).
In an effort to increase Quarks' impact, we have tried to provide a
simple user interface. Quarks supports C and C++ programs using the
m4 macros to describe parallelism and synchronization, as in the
SPLASH programs. In addition, Quarks supports a simple X-based user
interface that allows limited parallel debugging using
gdb
.
A paper describing Quarks is available here, and will appear in the Proceedings of the Third International Workshop on High-Level Parallel Programming Models and Supportive Environments, March 1998.
We are no longer actively developing or supporting Quarks. However, if you make any improvements and/or fix any bugs, please send us either the fixes or a pointer to a patch file so that the rest of the community can benefit from your work.