Evaluation of Causal Distributed Shared Memory for Data-race-free Programs
Abstract
Distributed Shared Memory (DSM) is becoming an accepted abstraction
for programming distributed systems. Although DSM simplifies the programming
of distributed applications, maintaining a consistent view of shared memory
operations across processors in a distributed system can be expensive. The
causal consistency model of DSM can allow more efficient implementations of
DSM because it requires that only causally ordered memory operations be viewed
in the same order at different processors. Also, weakly ordered systems have
been proposed which advocate the use of synchronization information to reduce
the frequency of communication between processors. We have implemented a
system that exploits both the weaker consistency of causal memory and the
synchronization information used in weakly ordered systems. Consistency is
ensured by locally invalidating data that is suspected to be causally
overwritten and this is only done when certain synchronization operations
complete at a processor. Data-race-free programs can be written in this
system assuming that the system provided sequentially consistent memory. By
implementing applications that have a variety of data sharing patterns, we
show that performance comparable to message passing implementations of the
applications can be achieved in the causal DSM system. The improved performance
is due to a significant reduction in communication costs compared to the
implementation of a strongly consistent memory system. These results show that
causal memory can meet the consistency and performance requirements of many
distributed applications.