1988
DOI: 10.1145/42190.42277
|View full text |Cite
|
Sign up to set email alerts
|

Efficient and correct execution of parallel programs that share memory

Abstract: In this paper we consider an optimization problem that arises in the execution of parallel programs on shared-memory multiple-instruction-stream, multiple-data-stream (MIMD) computers. A program on such machines consists of many sequential program segments, each executed by a single processor. These segments interact as they access shared variables. Access to memory is asynchronous, and memory accesses are not necessarily executed in the order they were issued. An execution is correct if it is sequentially con… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
265
0

Year Published

1996
1996
2013
2013

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 338 publications
(265 citation statements)
references
References 11 publications
0
265
0
Order By: Relevance
“…Specialized algorithms to insert memory fences automatically during compilation have been proposed [27,28]. However, these methods are based on a conservative program analysis, and they enforce sequential consistency on the instruction level rather than the operation level.…”
Section: Encoding Relaxed Memory Modelsmentioning
confidence: 99%
“…Specialized algorithms to insert memory fences automatically during compilation have been proposed [27,28]. However, these methods are based on a conservative program analysis, and they enforce sequential consistency on the instruction level rather than the operation level.…”
Section: Encoding Relaxed Memory Modelsmentioning
confidence: 99%
“…In addition to the above update limitation, MEM-ORAX uses a partial order reduction technique based on the principle that an instruction reordering that does not participate in a conflict cycle, as defined in [13], can be simulated by an appropriate scheduling under SC. Thus instruction reorderings that do not participate in conflict cycles need not be analysed.…”
Section: Methodsmentioning
confidence: 99%
“…We perform an extensive analysis to capture fences that need to be added in order to avoid a given error trace. By identifying the conflict cycles (as described by [13]) that a particular reordering (a → b) participates in, it is sometimes possible to deduce the existence of another, similar error trace where a and b occur in program order, but another pair (c → d) is reordered, yielding the same conflict cycle. In such cases a fence between c and d is equally necessary as a fence between a and b.…”
Section: Methodsmentioning
confidence: 99%
See 1 more Smart Citation
“…This set is called a delay set, because the second access will be delayed until the first has completed. Several researchers have proposed algorithms for finding a minimal delay set, which is the set of pairs of memory accesses whose order must be preserved in order to guarantee sequential consistency [20,11,15].…”
Section: Introductionmentioning
confidence: 99%