Estimating the overlap between dependent computations for automatic parallelization
Paul Bone, Zoltan Somogyi, Peter Schachte

TL;DR
This paper introduces algorithms that analyze data dependencies and execution overlap using profiling data to identify beneficial parallelization opportunities in programs, improving performance without requiring extensive programmer effort.
Contribution
The authors present a novel profiling-based approach to recognize parallelization opportunities considering data dependencies and execution overlap, enhancing autoparallelization techniques.
Findings
Technique can identify useful parallelization opportunities.
Preliminary results show potential speedups.
Requires only representative profiling data.
Abstract
Researchers working on the automatic parallelization of programs have long known that too much parallelism can be even worse for performance than too little, because spawning a task to be run on another CPU incurs overheads. Autoparallelizing compilers have therefore long tried to use granularity analysis to ensure that they only spawn off computations whose cost will probably exceed the spawn-off cost by a comfortable margin. However, this is not enough to yield good results, because data dependencies may \emph{also} limit the usefulness of running computations in parallel. If one computation blocks almost immediately and can resume only after another has completed its work, then the cost of parallelization again exceeds the benefit. We present a set of algorithms for recognizing places in a program where it is worthwhile to execute two or more computations in parallel that pay…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
