An Implementation of Mermera: A Shared Memory System that Mixes Coherence with Non-coherence

  • Authors:
  • Abdelsalam Heddaya;Himanshu Sinha

  • Affiliations:
  • -;-

  • Venue:
  • An Implementation of Mermera: A Shared Memory System that Mixes Coherence with Non-coherence
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

Abstract 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~\cite{HeddayaS93}. 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 aplication 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.