Treadmarks supports parallel computing on networks of workstations. Its main novel feature is that it provides a global shared address space across the different machines on a cluster. The shared address space distinguishes it from other well-known packages such as PVM or MPI that provide a message passing interface between machines. There is growing consensus in the parallel computing community that a shared memory interface is more desirable from the application programmer's viewpoint, allowing him or her to focus on algorithmic development rather than on managing communication. The challenge in providing a shared memory interface is to do so efficiently. To this end, TreadMarks incorporates several innovative features, including release consistency and multiple-writer protocols.
Current research going on in the TreadMarks project includes the integration of compiler and runtime techniques, the use of multithreading, in particular on multiprocessor nodes, support for large address spaces, heterogeneity, and scalability. TreadMarks runs on IBM, DEC, SUN, HP, x86 (running FreeBSD 2.1R or Linux Slackware 3.0) and SGI hardware. A port to WindowsNT has also been completed. C, C++, Java, and Fortran are supported. We are working on supporting the OpenMP standard on NOWs as well. TreadMarks was developed with support from the Texas Advanced Technology Program (TATP).
TreadMarks is being distributed at a small cost to universities and nonprofit institutions. For more information about the software, contact tmk@cs.rice.edu.