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.
Cited By
- Vora K, Koduru S and Gupta R ASPIRE Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, (861-878)
- Vora K, Koduru S and Gupta R (2014). ASPIRE, ACM SIGPLAN Notices, 49:10, (861-878), Online publication date: 31-Dec-2015.
- Eskicioglu M (1996). A comprehensive bibliography of distributed shared memory, ACM SIGOPS Operating Systems Review, 30:1, (71-96), Online publication date: 1-Jan-1996.
Recommendations
Coherence decoupling: making use of incoherence
ASPLOS '04This paper explores a new technique called coherence decoupling, which breaks a traditional cache coherence protocol into two protocols: a Speculative Cache Lookup (SCL) protocol and a safe, backing coherence protocol. The SCL protocol produces a ...
Coherence decoupling: making use of incoherence
ASPLOS 2004This paper explores a new technique called coherence decoupling, which breaks a traditional cache coherence protocol into two protocols: a Speculative Cache Lookup (SCL) protocol and a safe, backing coherence protocol. The SCL protocol produces a ...
Coherence decoupling: making use of incoherence
ASPLOS '04This paper explores a new technique called coherence decoupling, which breaks a traditional cache coherence protocol into two protocols: a Speculative Cache Lookup (SCL) protocol and a safe, backing coherence protocol. The SCL protocol produces a ...