An Implementation of Mermera: A Shared Memory System that Mixes Coherence with Non-coherence
1993-006-mermera.pdf (12.15Mb) Main Report
MetadataShow full item record
CitationHeddaya, Abdelsalam; Sinha, Himanshu. "An Implementation of Mermera: A Shared Memory System that Mixes Coherence with Non-coherence", Technical Report BUCS-1993-006, Computer Science Department, Boston University, May 1993. [Available from: http://hdl.handle.net/2144/1460]
Coherent shared memory is a convenient, but inefficient, method of inter-process communication for parallel programs. By contrast, message passing can be less convenient, but more efficient. To get the benefits of both models, several non-coherent memory behaviors have recently been proposed in the literature. We present an implementation of Mermera, a shared memory system that supports both coherent and non-coherent behaviors in a manner that enables programmers to mix multiple behaviors in the same program[HS93]. A programmer can debug a Mermera program using coherent memory, and then improve its performance by selectively reducing the level of coherence in the parts that are critical to performance. Mermera permits a trade-off of coherence for performance. We analyze this trade-off through measurements of our implementation, and by an example that illustrates the style of programming needed to exploit non-coherence. We find that, even on a small network of workstations, the performance advantage of non-coherence is compelling. Raw non-coherent memory operations perform 20-40~times better than non-coherent memory operations. An example application program is shown to run 5-11~times faster when permitted to exploit non-coherence. We conclude by commenting on our use of the Isis Toolkit of multicast protocols in implementing Mermera.