Compiling Loop-Based Nested Parallelism for Irregular Workloads
Yian Su, Mike Rainey, Nick Wanninger, Nadharm Dhiantravan, Jasper Liang, Umut A. Acar, Peter A. Dinda, Simone Campanoni
摘要
Modern programming languages offer special syntax and semantics for logical fork-join parallelism in the form of parallel loops, allowing them to be nested, e.g., a parallel loop within another parallel loop. This expressiveness comes at a price, however: on modern multicore systems, realizing logical parallelism results in overheads due to the creation and management of parallel tasks, which can wipe out the benefits of parallelism. Today, we expect application programmers to cope with it by manually tuning and optimizing their code. Such tuning requires programmers to reason about architectural factors hidden behind layers of software abstractions, such as task scheduling and load balancing. Managing these factors is particularly challenging when workloads are irregular because their performance is input-sensitive. This paper presents HBC, the first compiler that translates C/C++ programs with high-level, fork-join constructs (e.g., OpenMP) to binaries capable of automatically controlling the cost of parallelism and dealing with irregular, input-sensitive workloads. The basis of our approach is Heartbeat Scheduling, a recent proposal for automatic granularity control, which is backed by formal guarantees on performance. HBC binaries outperform OpenMP binaries for workloads for which even entirely manual solutions struggle to find the right balance between parallelism and its costs.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
它引用的顶会 Paper5
- SparseGPT: Massive Language Models Can be Accurately Pruned in One-ShotElias Frantar, Dan AlistarhICML 2023 · 被引用 1,240 次
- Perspective: A Sensible Approach to Speculative Automatic ParallelizationSotiris Apostolakis, Ziyang Xu, Greg Chan, Simone Campanoni 等ASPLOS 2020 · 被引用 19 次
- Task parallel assembly language for uncompromising parallelismMike Rainey, Ryan R. Newton, Kyle C. Hale, Nikos Hardavellas 等PLDI 2021 · 被引用 9 次
- Compiler-based timing for extremely fine-grain preemptive parallelismSouradip Ghosh, Michael Cuevas, Simone Campanoni, Peter A. DindaSC 2020 · 被引用 7 次
- Paths to OpenMP in the kernelJiacheng Ma, Wenyi Wang, Aaron Nelson, Michael Cuevas 等SC 2021 · 被引用 4 次
相关 Paper
- Automatic Parallelism ManagementSam Westrick, Matthew Fluet, Mike Rainey, Umut A. AcarPOPL 2024 · 被引用 7 次
- Optimizing Recovery Logic in Speculative High-Level SynthesisDylan Leothaud, Jean-Michel Gorius, Simon Rokicki, Steven DerrienDAC 2025
- T4: Compiling Sequential Code for Effective Speculative Parallelization in HardwareVictor A. Ying, Mark C. Jeffrey, Daniel SánchezISCA 2020 · 被引用 25 次
- Phloem: Automatic Acceleration of Irregular Applications with Fine-Grain Pipeline ParallelismQuan M. Nguyen, Daniel SánchezHPCA 2023 · 被引用 7 次
- A Programming Model for GPU Load BalancingMuhammad Osama, Serban D. Porumbescu, John D. OwensPPoPP 2023 · 被引用 10 次
