Polynomial-time algorithms for enforcing sequential consistency in SPMD programs with arrays

1Citations
Citations of this article
3Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The simplest semantics for parallel shared memory programs is sequential consistency in which memory operations appear to take place in the order specified by the program. But many compiler optimizations and hardware features explicitly reorder memory operations or make use of overlapping memory operations which may violate this constraint. To ensure sequential consistency while allowing for these optimizations, traditional data dependence analysis is augmented with a parallel analysis called cycle detection. In this paper, we present new algorithms to enforce sequential consistency for the special case of the Single Program Multiple Data (SPMD) model of parallelism. First, we present an algorithm for the basic cycle detection problem, which lowers the running time from O(n3) to O(n2). Next, we present three polynomial-time methods that more accurately support programs with array accesses. These results are a step toward making sequentially consistent shared memory programming a practical model across a wide range of languages and hardware platforms. © Springer-Verlag 2004.

Cite

CITATION STYLE

APA

Chen, W. Y., Krishnamurthy, A., & Yelick, K. (2004). Polynomial-time algorithms for enforcing sequential consistency in SPMD programs with arrays. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2958, 340–356. https://doi.org/10.1007/978-3-540-24644-2_22

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free