2013 IEEE International Symposium on Parallel &Amp; Distributed Processing, Workshops and PHD Forum 2013
DOI: 10.1109/ipdpsw.2013.68
|View full text |Cite
|
Sign up to set email alerts
|

Loop Chaining: A Programming Abstraction for Balancing Locality and Parallelism

Abstract: Abstract-There is a significant, established code base in the scientific computing community. Some of these codes have been parallelized already but are now encountering scalability issues due to poor data locality, inefficient data distributions, or load imbalance. In this work, we introduce a new abstraction called loop chaining in which a sequence of parallel and/or reduction loops that explicitly share data are grouped together into a chain. Once specified, a chain of loops can be viewed as a set of iterat… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
13
0

Year Published

2013
2013
2019
2019

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 15 publications
(13 citation statements)
references
References 41 publications
0
13
0
Order By: Relevance
“…The performance data on bandwidths in Tables 4 and 5 show that there is only little scope for additional speedup. One avenue we are currently investigating for obtaining further performance is to implement sparse/overlapped tiling [63,64]. The idea is to employ communications avoiding algorithms such that we reduce the bottleneck due to memory bandwidth.…”
Section: Single Node Performancementioning
confidence: 99%
“…The performance data on bandwidths in Tables 4 and 5 show that there is only little scope for additional speedup. One avenue we are currently investigating for obtaining further performance is to implement sparse/overlapped tiling [63,64]. The idea is to employ communications avoiding algorithms such that we reduce the bottleneck due to memory bandwidth.…”
Section: Single Node Performancementioning
confidence: 99%
“…The loop chain is an abstraction introduced in [21]. Informally, a loop chain is a sequence of loops with no global synchronization points, enriched with information to enable run-time data dependence analysis -necessary since indirect memory accesses inhibit common static approaches to loop optimization.…”
Section: The Loop Chain Abstraction For Unstructured Mesh Applicationsmentioning
confidence: 99%
“…The data dependence analysis that we have developed in this article is based on the loop chain abstraction, which was originally presented in [21]. This abstraction is su ciently general to capture data dependencies in programs structured as arbitrary sequences of loops, particularly to create inspector/executor schemes for many unstructured mesh application.…”
Section: Related Workmentioning
confidence: 99%
“…x y x y block halo halo area of dataset 1 Fig. 1: Halos in a multi-block setting introduces a lazy execution scheme used by OPS, and describes a number of optimizations that rely on the loop chaining abstraction [22]. Section IV gives an overview of the design choices of OPS discussing their benefits and drawbacks, and finally Section VI draws conclusion.…”
Section: Dataset 1 On Blockmentioning
confidence: 99%