| Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, pages 274-281, Arlington, Texas, May 1991. IEEE Computer Society. |
....devices therefore require some modi cations to compensate for these factors. In this paper, we consider causal message ordering required in many distributed applications such as management of replicated data [8, 9] distributed monitoring [6] resource allocation [18] distributed shared memory [3], multimedia systems [2] and collaborative work [19] The protocols to implement causal message ordering in systems with static hosts have been presented in [14, 9, 16, 18, 20, 21] These protocols can be executed by every mobile host with all the relevant data structures being stored on the ....
M. Ahamad, P. Hutto, and R. John. Implementing and Programming Causal Distributed Memory. In Proceedings of the 11th IEEE International Conference on Distributed Computing Systems, pages 271-281, 1991.
....programmability for performance. Sequential consistency was first defined by Lamport [19] in this paper, we use an alternative formulation proposed by Afek et al. 2] based on I O automata. Other papers exploring correctness conditions for shared memory and algorithms that implement them include [1, 3, 5, 8, 9, 11, 12, 13, 14, 15, 16, 21, 24]. In most of this work, memory is modeled as a collection of items that are accessed through read and write operations. The study of correctness for shared memory with more general data types was initiated by Herlihy and Wing [17] Sequential consistency and other consistency conditions for ....
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proc. Eleventh International Conference on Distributed Computing Systems, pages 274--281, Arlington, TX, May 1991.
....programmability for performance. Sequential consistency was first defined by Lamport [19] in this paper, we use an alternative formulation proposed by Afek et al. 2] based on I O automata. Other papers exploring correctness conditions for shared memory and algorithms that implement them include [1, 3, 5, 8, 9, 11, 12, 13, 14, 15, 16, 21, 24]. In most of this work, memory is modeled as a collection of items that are accessed through read and write operations. The study of correctness for shared memory with more general data types was initiated by Herlihy and Wing [17] Sequential consistency and other consistency conditions for ....
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proc. Eleventh International Conference on Distributed Computing Systems, pages 274--281, Arlington, TX, May 1991.
....implement sequential consistency. Relaxed models, such as location consistency [60] and various forms of release consistency [3, 47, 64] ensure consistency (to varying degrees) only when explicit synchronization operations occur, such as the acquisition or release of a lock. Causal memory [7] ensures consistency only to the extent that if a process A reads a value written by another process B, then all subsequent operations by A must appear to occur after the write by B.MostDSM sim plement one of these relaxed consistency models [33, 87, 89, 130] though some implement a fixed ....
M. AHAMAD,P.W.HUTTO, AND R. JOHN, Implementing and programming causal distributed shared memory, in Proceedings of the 11th International Conference on Distributed Computing systems, Arlington, Texas, May 1991, pp. 274--281.
....in order to avoid inconsistent system states. The purpose of a data consistency protocol is to provide a consistent view of the shared memory in the presence of multiple copies. Data consistency protocols for implementing shared memories in message passing systems have received much attention [AHJ91, ABND90, AF92, HA90, LH89, ABHN91, MRZ95, RM93] Data consistency protocols implementing strong consistency require that all copies of an object be identical at all times. This, however, may be a very stringent consistency requirement. Lamport proposed the notion of sequential consistency, which ....
M. Ahamad, P. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proceedings of the IEEE Int'l Conference on Distributed Computing Systems, pages 274--281, 1991.
....are slow, and as a result the cache coherency protocols necessary to enforce sequential consistency are expensive, and architects are often unwilling to pay this cost on every memory access. Recently, a number of researchers have started exploring the implications of such weak memories [3, 29, 37]. A satisfactory trade o between ease of implementation and ease of use has yet to be established for shared memory semantics. In conclusion, although the asynchronous PRAM model explored in this paper has its limitations, we believe that the model is interesting in its own right, and we hope ....
M. Ahamad, P. Hutto, and R. John. Implementing and programming causal distributed shared memory. Technical Report TR GIT-CC-9049, Georgia Institute of Technology, December 1990.
....programmability for performance. Sequential consistency was first defined by Lamport [20] in this paper, we use an alternative formulation proposed by Afek et al. 2] based on I O automata. Other papers exploring correctness conditions for shared memory and algorithms that implement them include [1, 3, 5, 8, 9, 11, 12, 13, 15, 16, 17, 21, 24]. In most of this work, memory is modeled as a collection of items that are accessed through read and write operations. The study of correctness for shared memory with more general data types was initiated by Herlihy and Wing [18] Sequential consistency and other consistency conditions for ....
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proc. Eleventh International Conference on Distributed Computing Systems, pages 274--281, Arlington, TX, May 1991.
....behind it, its general implementation and a performance analysis. The current paper is the first place where we formally specify the basic consistency conditions, and elaborate on their exact implementation within CASCADE. as sequential consistency [15] PRAM [16] and causal consistency [2, 3] can be specified as certain combinations of our basic conditions. We also discuss usefulness of other combinations and analyze the inter dependencies within the set of guarantees. In the full version of this paper we present examples of several applications, each of which requires some of our ....
.... 19, 21] and data bases [17, 24] Vast amount of research was dedicated to implementing shared memory systems with various consistency guarantees, including sequential consistency (sometimes referred to as strong consistency) 15] weak consistency [12] release consistency [8] causal consistency [2, 3], lazy release consistency [14] entry consistency [6] and hybrid consistency [10] In contrast to our service, such systems are geared towards high performance computing, and generally assume non faulty environments and fast local communication. Much less attention, however, was devoted to ....
[Article contains additional citation context not shown here]
M. Ahamad, P. Hutto, and R. John. Implementing and Programming Causal Distributed Shared Memory. Technical Report TR GIT-CC-90-49, Georgia Institute of Technology, December 1990.
....performance, and are the subject of current research. Different forms of released consistency has recently been introduced, and the Clouds system has proposed algorithms for implementing a causal memory in which multiple writes are allowed to execute in parallel on copies of a given object [3]. A vector timestamp protocol is used to keep the causality relations. Some other works deal with both released and strict consistency protocols, and leave to the programmer the choice of the protocol [4] 5] Munin [6] requires the user to specify the type of its application, which may be ....
....takes into account causal dependencies (4) The readers writers algorithm takes care of operations on a single object, and does not consider any causal relations between operations on different objects. Let us take an example to illustrate one of these causal dependencies. Example (from [3]) Consider two objects O1 and O2 that have 0 for initial value. Consider two sequential processes P1 and P2 : P1 : write (O1 , 1) write (O2 , 1) P2: read(O2 , 1) read (O1, 0) As P2 reads the value 1 for O2 , it means that the operation write (O2,1) has been executed before operation ....
[Article contains additional citation context not shown here]
M. Ahamad, P. W. Hutto, R. John, Implementing and Programming Causal Distributed Shared Memory, 11th International Conference on Distributed Computing Systems, May 1991.
....debugger [49] In these environments, proper time establishes a causal as well as a temporal (happened before) relation between events. Many uses for the temporal relation have already been established: distributed algorithm implementation [32] system feature implementation (e.g. causal memory [28], causal message ordering [4] design recovery [23] global state recording [6] 15] 30] 45] global predicate evaluation [9] 17] 21] trace replay [35] 25] and the visualization of system execution [23] Several of these areas should also be able to benefit from using a causal relation to ....
....ordering between events that respects the event ordering during execution. Potential causality is characterized as the future not being able to influence the past [29] an event may be the cause of event if event occurs earlier than event . Previous work which subscribed to this definition are [29, 50, 28, 14, 51, 43]. A vector clock characterizes potential causality because the event ordering is consistent with system execution. Potential causality is a weak characterization of realized causality because it results in Figure 4: Relationships of Different Kinds of Causality (a larger set interprets more ....
M.Ahamad, P. Hutto, and R. John. "Implementing and programming causal distributed shared memory." In Proceedings of the 11th International Conference on Distributed Computing Systems, Arlington, Texas, 1991.
....devices therefore require some modifications to compensate for these factors. In this paper, we consider causal message ordering required in many distributed applications such as management of replicated data [5, 6] distributed monitoring [4] resource allocation [11] distributed shared memory [2], multimedia systems [1] and collaborative work [12] The protocols to implement causal message ordering in systems with static hosts have been presented in [7, 6, 9, 11, 13, 14] These protocols can be executed by every mobile host with all the relevant data structures being stored on the mobile ....
M. Ahamad, P. Hutto, and R. John. Implementing and Programming Causal Distributed Memory. In Proceedings of the 11th IEEE International Conference on Distributed Computing Systems, pages 271--281, 1991.
....that the CO property is strictly stronger than the FIFO property. The concept of causal ordering is of considerable interest to the design of distributed systems and finds applications in several domains such as updates of replicated data [4] global state collection, distributed shared memory [1], teleconferencing, multimedia systems, and fair resource allocation [6] In an asynchronous distributed system, if there is no synchronous communication at the transport or lower layers, causal message ordering requires appending some control information with each message to enforce the causal ....
M. Ahamad, P. Hutto, R. John, Implementing and Programming Causal Distributed Memory, Proc. of the 11th Intl. Conf. on Distrib. Comput. Sys., 274-281, 1991.
....ordering property is strictly stronger than the FIFO property. The concept of causal ordering is of considerable interest to the design of distributed systems and finds applications in several domains such as updates of replicated data [5, 8] global state collection [1] distributed shared memory [3], teleconferencing [14] multimedia systems [2] and fair resource allocation [10] Causal message ordering requires appending some control information with each message to enforce the causal order. The recipient process of a message uses this information to determine if there are undelivered ....
M. Ahamad, P. Hutto, R. John, Implementing and Programming Causal Distributed Memory, Proceedings of the 11th Intl. Conf. on Distributed Computing Systems, 274281, 1991.
.... Here we benefited from the vast amount of research that was dedicated to implementing shared memory systems with various consistency guarantees, including sequential consistency (sometimes referred to as strong consistency) 33] weak consistency [25] release consistency [19] causal consistency [3, 4], lazy release consistency [29] entry consistency [14] and hybrid consistency [22] In contrast to our service, such systems are geared towards high performance computing, and generally assume non faulty environments and fast local communication. We refer the reader to [7, 8, 22, 53] for other ....
M. Ahamad, P. Hutto, and R. John. Implementing and programming causal distributed shared memory. Technical Report TR GIT-CC-90-49, Georgia Institute of Technology, December 1990.
.... the strict consistency such that the version of data a process reads should be the latest version that was written for that data [7] A number of different memory semantics for DSM have been proposed including sequential, processor, weak, and release consistency [9] as well as causal coherence [1] but we do not consider them in this paper. Although these relaxed models provide greater level of concurrency, it would be more difficult to program in such an environment. The operation of the DSM system is shown in figure 2. 2 PROCESSES in COPY SET X X X X REQUEST WRITE(X) 1 WRITER ....
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proc. of the 10th International Conference on Distributed Computing Systems, pages 274--281, June 1990.
....operations on an object may not be instantaneous. The purpose of a data consistency protocol is to provide the illusion of serial execution on a single copy of each object. Recently, data consistency protocols for implementing shared memories in message passing systems have received much attention [AHJ91] [HA90] ABD90] Most proposed distributed shared memory (DSM) implementations are based on cache coherency protocols for multiprocessor systems. In a cache based system, multiple copies of an object may reside in the local cache of different processors. Traditional cache consistency protocols ....
Ahamad, M., Hutto, P., and John, R. Implementing and programming causal distributed shared memory. In Proceedings of the IEEE Int'l Conference on Distributed Computing Systems, pages 274--281, 1991.
....is that preserving real time order is no longer necessary in sequential consistency. 3. 3 Causal Consistency Causal consistency is a relaxed memory model that is based on the potential causal order relation defined by [21] Causal consistency was implemented by the researchers that proposed it [3] and was also implemented in the system Clouds [17] Since the potential causal order relation is defined to be the irreflexive transitive closure of two order relations (program order and read by order) 3] we must define the read by order before presenting the definition of Causal ....
.... defined by [21] Causal consistency was implemented by the researchers that proposed it [3] and was also implemented in the system Clouds [17] Since the potential causal order relation is defined to be the irreflexive transitive closure of two order relations (program order and read by order) [3], we must define the read by order before presenting the definition of Causal Consistency. Read by Order (rb) A write operation w(x)v is read by a read operation r(x)v (w(x)v rb r(x)v) if the operation r(x)v, issued by processor p i , reads the value written by the operation w(x)v issued by ....
M. Ahamad, P. Hutto, R. John, "Implementing and Programming Causal Distributed Shared Memory", Technical Report GIT-CC-90/49, Georgia Institute of Technology, 1990.
.... Request (1) Write ACK (3) Figure 1: Remote Read Write Procedures be the latest version that was written for that data page [14] A number of different memory semantics for the DSM systems have been proposed including processor, weak, and release consistency [16] as well as causal coherence [1]. However, in this paper, we focus on the sequential consistency model, and the write invalidation protocol [15] is assumed to implement the sequential consistency. Figure 1 depicts the read and the write procedures under the write invalidation protocol. For each data page, there is one owner ....
....at least up to the point at which the dependency has been formed. To record the opnum value up to which a process has to recover, each process p i in the system maintains an n integer array, called an operation counter vector(OCV ) where n is the number of processes in the system (OCV i = V i [1]; V i [i] V i [n] The i th entry, V i [i] denotes the current opnum value of p i , and V i [j] i 6= j) denotes the last opnum value of p j on which p i s current computation is dependent. This notation is similar to the causal vector proposed in [18] Hence, when a process p j ....
[Article contains additional citation context not shown here]
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proc. of the 10th Int'l Conf. on Distributed Computing Systems, pp. 274--281, Jun. 1990.
....extension of C that enables processes to share variables and presents an abstraction of shared memory to the programmers. This paper describes the results of our experiments with distributed shared memory based on three different notions of consistency: sequential consistency [16] causal memory [2, 3], and pipelined random access memory (PRAM) 19] Since weak memories reduce the amount of implicit synchronization, explicit primitives are needed in order to synchronize user processes. Maya supports locks and barriers as explicit synchronization primitives. We consider two different user ....
....this definition allows multiple copies of the same variable that reside at different processes to have different values. However, due to the FIFO channel assumption, all updates performed by a process are observed in the same order at any other process. Recently, Ahamad, Burns, Hutto, and Neiger [2, 3] have proposed causal memory based on the idea of causality of reads and writes [15] In this definition, events belonging to the same process are causally related by the program order and a read event is causally related to the write whose value it returns. A system execution is acceptable if and ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, pages 274--281. IEEE, May 1991.
....implement sequential consistency. Relaxed models, such as location consistency [60] and various forms of release consistency [3, 47, 64] ensure consistency (to varying degrees) only when explicit synchronization operations occur, such as the acquisition or release of a lock. Causal memory [7] ensures consistency only to the extent that if a process A reads a value written by another process B, then all subsequent operations by A must appear to occur after the write by B. Most DSM s implement one of these relaxed consistency models [33, 87, 89, 130] though some implement a fixed ....
M. AHAMAD, P. W. HUTTO, AND R. JOHN, Implementing and programming causal distributed shared memory, in Proceedings of the 11th International Conference on Distributed Computing systems, Arlington, Texas, May 1991, pp. 274--281.
....distributed application has been restricted to the domain of experts in this area. To isolate a designer from the complexity of a distributed system, several high level shared memory and message passing abstractions have been proposed to enable information exchange and sharing. For example, AHJ91, BKTJ92] have proposed frameworks based on distributed shared memory that allow remote processes to share objects. Similarly, distributed object systems such as Corba [Gro95] and DCOM provide uniform transparent access to remote objects. Frameworks have also been proposed [vRBF 95, SSTZ93, ....
....has proposed the notion of a floor as a coordination primitive to regulate control of shared resources in a collaborative environment. Many of these coordination primitives, however, are tied to specific abstractions. For example, coordination support in distributed shared memory abstractions [AHJ91] typically ensure consistent access to data and may not be suitable for other forms of synchronization (for example, to ensure that two objects A and B are updated atomically) On the other hand, frameworks for transaction management support atomicity but also enforce additional serializability ....
M. Ahamad, P. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proceedings of the IEEE Int'l Conference on Distributed Computing Systems, pages 274--281, 1991.
....matrix vector product, matrix matrix product, dynamic programming and other computations that are in the large class of oblivious computations 9 . The use of Causal memory to solve the traveling salesman problem, the dictionary problem and for solving a system of linear equations is described in [2]. Attiya and Friedman [4] show that any mutual exclusion protocol implemented on some noncoherent memories, must be cooperative in the sense that certain processes must participate regardless of whether they attempt to enter their critical sections or not. They note that traditional mutual ....
....x 10 6 # of Processes 0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 4.50 0.00 5.00 10.00 15.00 20.00 25.00 30.00 Figure 14: Performance of Write operations. All times are in microseconds. processors) can be obtained for the significant classes of applications that can tolerate non coherent memory [16, 2, 26]. On the other hand, we feel that coherent memory facilitates reasoning about parallel programs [15] Thus, we have designed Mermera to offer both kinds of behavior so that programs can be developed using coherent memory, and then optimized by modifying portions of the program to exploit ....
Mustaque Ahamad, Philip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. Technical Report GIT-CC-90-49, Georgia Institute of Technology, School of Information and Computer Science, 1990.
....problems. First, it fails to capture the overwrite semantics of memory and permits the computation shown in figure 3 that should not be permitted. Secondly, the notion of an order of observation of events is not clear. A more precise definition of causal memory is presented by Ahamad et al. in [AHJ90] To give a clear definition of a causal computation we define two relation constructors R w=w and R r=w which take a set of events Theta Delta and return ordered pairs from Theta w . Intuitively, R w=w ( Theta) relates two distinct writes ff and fi to the same location if and only if ff ....
....whenever the actual computation dominates the synchronization 8 the overhead, PRAM is much more efficient than Sequentially Consistent memory. The use of Causal memory to solve the traveling salesman problem, the dictionary problem solving a system of linear equations is described in [AHJ90] This discussion illustrates that different problems are amenable to efficient solutions on different kinds of memory. So, a system should provide both coherent and non coherent memories to the programmer and this has been the approach in MVM and Munin [CBZ91] Munin provides release consistency ....
Mustaque Ahamad, Philip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. Technical Report GIT-CC-90-49, College of Computing, Georgia Institute of Technology, 1990.
....al. 55] used an axiomatic approach to formally describe Total Store Order (TSO) and the Partial Store Order (PSO) Both the automata based and axiomatic approaches have the formal rigidity but fail to provide an easy way of comparing different memory models. Initially, causal memory was defined [6] by characterizing the possible values that could be returned when a read operation is executed by a processor. A more general framework described by Ahamad et al. 5] is used here, as it allows us to define and easily relate causal memory to a range of memory models that have been proposed. 3.1 ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, May 1991.
.... the strict consistency such that the version of data a process reads should be the latest version that was written for that data [6] A number of different memory semantics for DSM have been proposed including sequential, processor, weak, and release consistency [8] as well as causal coherence [1] but we do not consider them in this paper. Although these relaxed model provides greater level of concurrency, it would be more difficult to program in such an environment. The operation of the DSM system is shown in figure 2. When a process needs to read a page, it first checks whether the page ....
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proc. of the 10th International Conference on Distributed Computing Systems, pages 274--281, June 1990.
....Sarkar s location consistency [43] not the same as Frigo s location consistency [40] and various forms of release consistency [1, 33, 44] ensure consistency (to varying degrees) only when explicit synchronization operations occur, such as the acquisition or release of a lock. Causal memory [2] ensures consistency only to the extent that if a process A reads a value written by another process B, then all subsequent operations by A must appear to occur after the write by B. Most DSM s implement one of these relaxed consistency models [20, 59, 61, 90] though some implement a fixed ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing systems, pages 274--281, Arlington, Texas, May 1991.
.... algorithms can be used to solve problems such as simultaneous linear equations (section 5 below) and finding shortest paths in graphs [Roo93] Causal memory, which is not supported in Mermera, can run additional applications, including the travelling salesman problem, and the dictionary problem [AHJ90] Mermera allows the programmer to mix different memory behaviors during the same computation, simply by invoking the appropriate operation to access different memory locations at different times. We provide four kinds of write operations to shared memory: CO Write, PRAM Write, Slow Write and ....
Mustaque Ahamad, Philip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. Technical Report GIT-CC-90-49, Georgia Institute of Technology, School of Information and Computer Science, 1990.
....can be achieved using modified algorithms and a working variant is presented. Causal memory: All processors must agree on the order of causally related effects. Events not related by potential causality (concurrent events) may be observed in different orders. In a later paper, Ahamad, et al. [7] examine the issues involved in actual programming of causal memories. They conclude that most programs written for consistent memory work correctly in causal memory systems as long as synchronisation is done through sharedmemory variables. They also note that for some algorithms, minor changes ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and Programming Causal Distributed Shared Memory. In Proceedings of the Eleventh International Conference on Distributed Computing Systems, May 1991.
....or take access timings into consideration. The slow memory model [18] requires that a read return the value of some previous conflicting write. After a value written by (say) processor P i is read, the values of earlier conflicting writes by P i cannot be returned. The causal memory model [5, 18] ensures that any write that causally precedes a read is observed by the read. Causal precedence is a transitive relation established by program order or due to a read that returns the value of a write. Data race free 1 is based on the assumption that most programmers prefer to reason with ....
M. AHAMAD, P. W. HUTTO and R. JOHN, Implementing and Programming Causal Distributed Shared Memory, College of Computing Technical Report GIT-CC-90-49, Georgia Institute of Technology, November 1990.
....programmability for performance. Sequential consistency was first defined by Lamport [26] in this paper, we use an alternative formulation proposed by Afek et al. 4] based on I O automata. Other papers exploring correctness conditions for shared memory and algorithms that implement them include [2, 3, 5, 11, 12, 15, 17, 18, 19, 20, 21, 28, 33]. A valuable survey of these ideas is given by Adve and Gharachorloo [1] In most of previous work, memory is modelled as a collection of items that are accessed through read and write operations. The study of correctness for shared memory with more general data types was initiated by Herlihy ....
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proc. Eleventh International Conference on Distributed Computing Systems, pages 274--281, Arlington, TX, May 1991.
....implement sequential consistency. Relaxed models, such as location consistency [14] and various forms of release consistency [1, 13, 15] ensure consistency (to varying degrees) only when explicit synchronization operations occur, such as the acquisition or release of a lock. Causal memory [2] ensures consistency only to the extent that if a process A reads a value written by another process B, then all subsequent operations by A must appear to occur after the write by B. Most DSM s implement one of these relaxed consistency models [11, 18, 21, 27] though some implement a fixed ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing systems, pages 274--281, Arlington, Texas, May 1991.
....is linearizable if each individual object is) and this makes it quite attractive as a correctness condition for different applications, such as concurrent programming, multiprocessor operating systems, distributed file systems, etc. where concurrency is of primary interest. Many authors (e.g. [1, 2, 5, 6, 8, 14]) have argued that supporting strong consistency conditions is difficult to implement efficiently. In particular, it has been claimed that although for a lot of applications a significant amount of the computation does not involve global operations, in order to maintain global consistency, all ....
....between the degree of correctness and concurrency, different memory systems have been suggested in order to resolve these problems. In most cases, researchers investigated different types of weaker consistency conditions, placing some of the correctness under the control of the programmer (e.g. [2, 8]) Other researchers explored the possibility of structuring the memory system as a hierarchy of caches, counting on some sort of isolation between processes that access shared data and those that do not. In some cases (e.g. 2] a distributed shared memory was implemented by separating it at a ....
[Article contains additional citation context not shown here]
M. Ahamad, P. Hutto and R. John, Implementing and Programming Causal Distributed Shared Memory, TR GIT-CC-90-49, Georgia Institute of Technology, December 1990.
....that writes by the same process to the same location are read by all processes in the order they were written by the writer. Writes to different locations, even by the same process, can be interleaved in different orders at different processes. A design for a Causal memory system is described in [AHJ91] and a formal specification is given in [ABHN91] We do not know of an implementation of any of these memories. In Chapter 3 we argue for the combination of different behaviors in one system. MultiVersion memory [WW90] combines the behaviors of Weak memory and Dynamic Atomic memory. An ....
Mustaque Ahamad, Philip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proc. 11th IEEE Intl. Conference on Distributed Computing Systems, June 1991.
....problems. First, it fails to capture the overwrite semantics of memory and permits the computation shown in Figure 2.3 that should not be permitted. Second, the notion of an order of observation of events is not clear. A more precise definition of Causal memory is presented by Ahamad et al. in [AHJ90] To give a clear definition of a Causal computation we define two relation constructors R w=w and R r=w which take a set of events Theta Delta and return ordered pairs from Theta w . Intuitively, R w=w ( Theta) relates two distinct writes ff and fi to the same location if and only if ff ....
....the actual computation dominates the synchronization 2 overhead, PRAM is much more efficient than Sequentially Consistent memory. The use of Causal memory to solve the traveling salesman problem, the dictionary problem and to find the solution of a system of linear equations is described in [AHJ90] Hutto and Ahamad showed in [HA90] that one cannot achieve mutual exclusion using Slow Memory. Attiya and Friedman [AF92] proved that any solution to the mutual exclusion problem using non coherent memory will either involve a centralized server or will require the participation of all processes ....
Mustaque Ahamad, Philip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. Technical Report GIT-CC90 -49, College of Computing, Georgia Institute of Technology, 1990.
.... that uses non atomic variables into one that uses atomic variables was used earlier by Anderson and Gouda [3] to prove the correctness of programs that use safe and regular variables [11] The specific abstractions of non atomic memory that we examine include pipelined RAM [12] causal memory [2], TSO and PSO memory models of Sparc [9] and hybrid consistency [5] In each of these cases, suitable auxiliary variables are defined in the process of transformation. These auxiliary variables may be viewed as an abstract implementation of the corresponding kind of memory. The rest of the paper ....
....x p . 2. A write statement x : m is translated to x p : m; h8q : q 6= p : X q : X q [ fmgi. 3. Process M p;x is as follows: repeat if X p 6= fg then x p ; X p : m; X p Gamma fmg where m 2 X p forever 3 Causal Memory This kind of non atomic memory was defined by Ahamad, Hutto, and John [2], and later by Ahamad, Burns, Hutto, and Neiger [1] A causality relation is maintained across read and write events. There are two components of this causality relation: the first is based on program order (this also occurs in the pipelined RAM model) and the second is based on the values read ....
[Article contains additional citation context not shown here]
M. Ahamad, P. W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, pages 274--281, 1991.
....CR2[j; x] v indicates that all the write operations up to and including the v th write operation by processor P j on object x causally precede this write on z. Now, we will demonstrate that CR2 generalizes the data structures used in our protocol and the protocol proposed by Ahamad et al. [2] to capture causal relations among write and read operations. We can view array Causal used by the protocol described in Section 3.3 as CR2 being collapsed into a one dimensional array, such that Causal[x] P j2Processor Range CR2[j; x] for x 2 Object Range. This is possible by assigning ....
....CR2[j; x] for x 2 Object Range. This is possible by assigning system wide version numbers to all write operations on an object, instead of processor level version numbers. Ahamad et al. proposed a protocol for a weaker notion of consistency than sequential consistency, called causal consistency [2]. The protocol maintains a one dimensional array V T [Processor Range] We can view V T as CR2 being collapsed into one dimensional array such that V T [j] P x2Object Range CR2[j; x] for j 2 Processor Range. Thus, V T [j] represents the total number of write operations issued by P j on any ....
Ahamad, M., Hutto, P., and John, R. Implementing and programming causal distributed shared memory. In Proceedings of the IEEE Int'l Conference on Distributed Computing Systems, pages 274--281, 1991. 12 M. Mizuno and M. Raynal
....of the framework developed in [13] for defining consistency conditions, and the framework developed in [25] for defining virtual synchrony. We demonstrate our definition method for three well known consistency conditions, namely linearizability [28] sequential consistency [30] and causal memory [5]. However, our definition method is general, and can be applied to other consistency condition as well. Following this, for each of these consistency conditions, we present an efficient implementation which is based on an underlying virtually synchronous communication system, and prove its ....
....to broadcast messages. Note that cbc can always do a local delivery of a message immediately. Hence, both reads and writes are executed immediately. Also, note that by using the cbc service of vscl, the code of the algorithm becomes very simple since, unlike other implementations of causal memory [4, 5, 6], we do not need to implement causal broadcast as part of our memory consistency protocol. The proof of this algorithm is very similar to the proof of the algorithm for sequential consistency, and is therefore dropped from this paper. 5 Discussion In recent years it becomes evident that ....
M. Ahamad, P. Hutto, and R. John. Implementing and Programming Causal Distributed Shared Memory. Technical Report TR GIT-CC-90-49, Georgia Institute of Technology, December 1990.
....today, and intensive studies have been done for characterizing these protocols, no single coherence protocol is known to be the best. Existing protocols for DSM include sequential consistency [19] weak consistency [10] release consistency [13] lazy release consistency [17] causal consistency [1], and various protocols included in Munin [6] An adaptive cache coherence protocol proposed by A. Cox and R. J. Fowler [7] provides an example of the effectiveness of protocol customization. Their protocol watches the run time accesses of applications to caches, and switches the cache coherence ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems. IEEE Computer Society, 1991.
....debugger [49] In these environments, proper time establishes a causal as well as a temporal (happened before) relation between events. Many uses for the temporal relation have already been established: distributed algorithm implementation [32] system feature implementation (e.g. causal memory [28], causal message ordering [4] design recovery [23] global state recording [6] 15] 30] 45] global predicate evaluation [9] 17] 21] trace replay [35] 25] and the visualization of system execution [23] Several of these areas should also be able to benefit from using a causal relation to ....
....between events that respects the event ordering during execution. Potential causality is characterized as the future not being able to influence the past [29] an event may be the cause of event if event occurs earlier than event . Previous work which subscribed to this definition are [29] 50] [28] [14] 51] 43] A vector clock characterizes potential causality because the event ordering is consistent with system execution. Potential causality is a weak characterization of realized causality because it results in all previous events being potential causes for later events. This is a ....
M.Ahamad, P. Hutto, and R. John. "Implementing and programming causal distributed shared memory." In Proceedings of the 11th International Conference on Distributed Computing Systems, Arlington, Texas, 1991.
....a bottleneck as the software overheads, and hence an increased processor speed reduces speedup. However, some of the improvements are masked by the corresponding changes in software overheads. 7 Related Work This work draws on the large body of research in relaxed memory consistency models (e.g. [3, 5, 9, 10]) We have chosen as our basic model the release consistency model introduced by the DASH project at Stanford [13] because it requires little or no change to existing shared memory programs. An interesting alternative is entry consistency (EC) defined by Bershad and Zekauskas [5] EC differs ....
M. Ahamad, P.W. Hutto, and R. John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, pages 274--281, May 1991.
....CR2[j; x] v indicates that all the write operations up to and including the v th write operation by processor P j on object x causally precede this write on z. Now, we will demonstrate that CR2 generalizes the data structures used in our protocol and the protocol proposed by Ahamad et al. [2] to capture causal relations among write and read operations. We can view array Causal used by the protocol described in Section 3.3 as CR2 being collapsed into a one dimensional array, such that Causal[x] P j2Processor Range CR2[j; x] for x 2 Object Range. This is possible by assigning ....
....CR2[j; x] for x 2 Object Range. This is possible by assigning system wide version numbers to all write operations on an object, instead of processor level version numbers. Ahamad et al. proposed a protocol for a weaker notion of consistency than sequential consistency, called causal consistency [2]. The protocol maintains a onedimensional array V T [Processor Range] We can view V T as CR2 being collapsed into one dimensional array such that V T [j] P x2Object Range CR2[j; x] for j 2 Processor Range. Thus, V T [j] represents the total number of write operations issued by P j on any ....
Ahamad, M., Hutto, P., and John, R. Implementing and programming causal distributed shared memory. In Proceedings of the IEEE Int'l Conference on Distributed Computing Systems, pages 274--281, 1991.
....memories such as these in large systems; a simple argument [23] can be used to show that these memories cannot retain low access latency in large systems. This fact represents a significant efficiency problem in distributed shared memory systems. Recent research in high performance shared memories [2,3,17,23] has suggested the weakening of memory consistency to reduce the cost of maintaining the consistency of shared memory. Such memories scale well, but they sacrifice some of the consistency guarantees of sequential consistency. Other research [1,5,7,12] has proposed memories that are hybrids of ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the Eleventh International Conference on Distributed Computing, pages 274--281, May 1991.
....deal with the lack of strong consistency. In this paper, we explore efficient implementations of DSM by exploiting ideas from both approaches described above we make use of synchronization information, as advocated by the weakly ordered memory systems approach, for implementing causal memory [6], which is a weakly consistent memory. The causal memory model requires that a read operation return a value that is consistent with the causal order of the memory operations that are ordered before it. We extend causal memory by allowing synchronization operations and develop an implementation ....
....and two different implementations are described in Section 3. In Section 4 we describe the applications with which we experimented and provide performance results. We discuss related work in Section 5 and conclude in Section 6. 2 Causal Memory 2. 1 The Model Causal memory has been defined in [6] by characterizing the possible values that could be returned when a read operation is executed by a processor. We use a more general framework here, as it allows us to easily relate causal memory to a range of memory models that have been proposed. The model is motivated by the ones used by Misra ....
[Article contains additional citation context not shown here]
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, May 1991.
....different protocols, we used applications that capture a range of data sharing patterns. The results of our studies led to important insights into the operation of DSM protocols for scientific applications. We have also further explored the benefits of weaker consistency provided by causal memory [37, 49, 36], and explored the programming of causal memory for various types of programs [35] Our detailed performance studies have shown that for many parallel applications, causal memory significantly reduces the time the applications spend in state sharing related activities. We have extended the DSM ....
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, May 1991.
No context found.
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, pages 274-281, Arlington, Texas, May 1991. IEEE Computer Society.
No context found.
Mustaque Ahamad, Philip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory.InProc. 11th IEEE Intl. Conference on Distributed Computing Systems, June 1991.
No context found.
Mustaque Ahamad, Philip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory.Technical Report GIT-CC90 -49, College of Computing, Georgia Institute of Technology,1990.
No context found.
Mustaque Ahamad, Phillip W. Hutto, and Ranjit John. Implementing and programming causal distributed shared memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, pages 274-281, Arlington, Texas, May 1991. IEEE Computer Society.
No context found.
M. Ahamad, P. Hutto, and R. John. Implementing and programming causal distributed memory. In Proceedings of the 11th International Conference on Distributed Computing Systems, pages 274--281, 1991.
No context found.
M. Ahamad, P. Hutto, and R. John, Implementing and Programming Causal Distributed Memory. Proc. ICDCS, Arlington, TX (May 1991), 271--281.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC