TreadMarks implements a traditional global shared memory model on a network of workstations that share no physical memory. Its simple C language interface of seven calls includes barrier and lock objects for synchronization support. Shared memory is allocated and freed explicitly. The result is a portable system that runs at the user level on Unix workstations, with no kernel or other system modifications. By defining explicit synchronization primitives for application use, TreadMarks can implement a lazy release consistency model for shared memory that is both natural for writing programs and efficient for a range of applications.
This paper summarizes approaches to distributed shared memory. TreadMarks is compared briefly with several other models, including message-passing systems (PVM), structured distributed shared-memory systems (Linda), implementations (DASH), and systems with stronger memory consistency constraints.
The performance of TreadMarks is illustrated with two parallel applications. Although the results confirm that near-linear speedup is achievable, this was in a small, limited network of eight homogeneous workstations.
One disappointing aspect of the paper is that much of the performance discussion is qualitative. Some comparisons against interesting alternative systems, such as an eight-way shared memory multiprocessor, are summarized only in broad terms.
TreadMarks is an excellent example of how a simple, clean interface based on well-defined abstractions can provide a powerful and potentially useful parallel system. To be fully practical, it must be shown to be efficient in much larger and more heterogeneous networks.
The presentation and organization are excellent. The clear, concise descriptions of issues and comparisons with other systems will make this paper useful for anyone interested in networks of workstations or parallel systems.