Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming 2005
DOI: 10.1145/1065944.1065947
|View full text |Cite
|
Sign up to set email alerts
|

Compiler techniques for high performance sequentially consistent java programs

Abstract: The rise of Java, C#, and other explicitly parallel languages has increased the importance of compiling for different software memory models. This paper describes co-operating escape, thread structure, and delay set analyses that enable high performance for sequentially consistent programs.We compare the performance of a set of Java programs compiled for sequential consistency (SC) with the performance of the same programs compiled for weak consistency. For SC, we observe a slowdown of 10% on average for an ar… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
65
0

Year Published

2006
2006
2020
2020

Publication Types

Select...
6
3

Relationship

1
8

Authors

Journals

citations
Cited by 82 publications
(65 citation statements)
references
References 25 publications
0
65
0
Order By: Relevance
“…Lee and Padua [15] describe an algorithm based on dominators for inserting memory fences, while Sura et al [27] focus on the more practical aspects, e.g., on how to approximate delay sets by performing cheaper whole-program analyses coupled with an escape analysis. While these works perform much more sophisticated analyses than the ones we implemented, unfortunately none of them comes with a mechanised soundness proof.…”
Section: Related Workmentioning
confidence: 99%
“…Lee and Padua [15] describe an algorithm based on dominators for inserting memory fences, while Sura et al [27] focus on the more practical aspects, e.g., on how to approximate delay sets by performing cheaper whole-program analyses coupled with an escape analysis. While these works perform much more sophisticated analyses than the ones we implemented, unfortunately none of them comes with a mechanised soundness proof.…”
Section: Related Workmentioning
confidence: 99%
“…There are compiler techniques to identify race cycles and put fences (e.g., [14,17,19,31]). They are conservative because they only use static information, and typically cause large slowdowns.…”
Section: Other Related Workmentioning
confidence: 99%
“…Other researchers have used the compiler to identify race pairs that could cause SCVs, typically using the Delay Set algorithm, and then insert fences to prevent cycles [12,14,17,19,31]. Since the compiler has limited information, these approaches tend to be very conservative and result in substantial slowdowns.…”
Section: Introductionmentioning
confidence: 99%
“…Shasha and Snir proposed the delay sets algorithm for determining the set of fences to insert [45]. Recent research has further reduced the number of fences required by incorporating analyses that detect which memory locations are possibly accessed by multiple threads [30,46]. Finally, recent work describes a new hardware mechanism called a conditional fence [33], which uses the results of a compiler analysis to dynamically decide whether a given fence in the instruction stream can be safely ignored while still ensuring SC.…”
Section: Guaranteeing End-to-end Sequential Consistencymentioning
confidence: 99%