Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL '98 1998
DOI: 10.1145/268946.268974
|View full text |Cite
|
Sign up to set email alerts
|

Barrier inference

Abstract: Many paralle1 programs are written in SPMD style, i.e. by running the same sequential program on alI processes. SPMD programs include synchronization, but ii is easy to write incorrect synchronization patterns. We propose a system that verifies a program's synchronization pattern. We also propose language features to make the synchronization pattern more explicit and easily checked. We have implemented a prototype of our system for Split-C and successfully verified the synchronization structure of realistic pr… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
76
0

Year Published

1998
1998
2012
2012

Publication Types

Select...
4
3
2

Relationship

1
8

Authors

Journals

citations
Cited by 92 publications
(76 citation statements)
references
References 21 publications
0
76
0
Order By: Relevance
“…3 In this light, Rule (a) from the definition of CP is intuitively clear: as far as later events are concerned, two conflicting events have to occur in the same order in every correctly-reordered execution. Thus, conflicting events induce a hard ordering dependency, if it is certain that they do not constitute a race (in this case, because they are protected by a common lock).…”
Section: Threadmentioning
confidence: 99%
“…3 In this light, Rule (a) from the definition of CP is intuitively clear: as far as later events are concerned, two conflicting events have to occur in the same order in every correctly-reordered execution. Thus, conflicting events induce a hard ordering dependency, if it is certain that they do not constitute a race (in this case, because they are protected by a common lock).…”
Section: Threadmentioning
confidence: 99%
“…Unlike our dynamic testing scenario, strength reduction optimizations, loop dependence testing and runtime array bound and access anomaly checking primarily motivate these techniques. Second, our LOV analysis also uses the concept of the single-valued variable, a variable that maintains identical values across all MPI tasks through all possible control flows [3,43]. Those analyses classify variables as single-valued or multi-valued in order to verify a program's synchronization pattern.…”
Section: Automatic Extraction Of Application Progressmentioning
confidence: 99%
“…5 In our example, the first barrier in each process matches the other, and the second barrier in each process matches the other. Synchronizations that are not syntactically identifiable are often considered as a sign of potential bugs [1]. Note that reference cells c 1 and c 2 are not used for synchronization and therefore need no syntactic restriction.…”
Section: Examplesmentioning
confidence: 99%