Reverse engineering for reduction parallelization via semiring polynomials
Akimasa Morihata, Shigeyuki Sato
摘要
Parallel reduction, which summarizes a given dataset, e.g., the total, average, and maximum, plays a crucial role in parallel programming. This paper presents a new approach, reverse engineering, to automatically discovering nontrivial parallel reductions in sequential programs. The body of the sequential reduction loop is regarded as a black box, and its input-output behaviors are sampled. If the behaviors correspond to a set of linear polynomials over a semiring, a divide-and-conquer parallel reduction is generated. Auxiliary reverse-engineering methods enable a long and nested loop body to be decomposed, which makes our parallelization scheme applicable to various types of reduction loops. This approach is not only simple and efficient but also agnostic to the details of the input program. Its potential is demonstrated through several use case scenarios. A proof-of-concept implementation successfully inferred linear polynomials for nearly all of the 74 benchmarks exhaustively collected from the literature. These characteristics and experimental results demonstrate the promise of the proposed approach, despite its inherent unsoundness.
问问这篇 Paper
问问你的智能体。
Lune 读过与它相关的顶会 Paper,每个回答都会注明依据哪几篇。
相关 Paper
- Phased synthesis of divide and conquer programsAzadeh Farzan, Victor NicoletPLDI 2021 · 被引用 11 次
- Solvable Polynomial Ideals: The Ideal Reflection for Program AnalysisJohn Cyphert, Zachary KincaidPOPL 2024 · 被引用 11 次
- Simplifying dependent reductions in the polyhedral modelCambridge Yang, Eric Atkinson, Michael CarbinPOPL 2021 · 被引用 5 次
- AD for an Array Language with Nested ParallelismRobert Schenck, Ola Rønning, Troels Henriksen, Cosmin E. OanceaSC 2022 · 被引用 11 次
- A Type-Based Approach to Divide-and-Conquer Recursion in CoqPedro Abreu, Benjamin Delaware, Alex Hubers, Christa Jenkins 等POPL 2023
