TY - GEN
T1 - Distributing and Parallelizing Non-canonical Loops
AU - Aubert, Clément
AU - Rubiano, Thomas
AU - Rusch, Neea
AU - Seiller, Thomas
N1 - Funding Information:
Loop optimization · Abstract interpretation · Program analysis · Dependency analysis This research is supported by the Transatlantic Research Partnership of the Embassy of France in the United States and the FACE Foundation. Th. Rubiano and Th. Seiller are also supported by the Île-de-France region through the DIM RFSI project “CoHOp”. N. Rusch is supported in part by the Augusta University Provost’s office, and the Translational Research Program of the Department of Medicine, Medical College of Georgia at Augusta University.
Publisher Copyright:
© 2023, The Author(s), under exclusive license to Springer Nature Switzerland AG.
PY - 2023
Y1 - 2023
N2 - This work leverages an original dependency analysis to parallelize loops regardless of their form in imperative programs. Our algorithm distributes a loop into multiple parallelizable loops, resulting in gains in execution time comparable to state-of-the-art automatic source-to-source code transformers when both are applicable. Our graph-based algorithm is intuitive, language-agnostic, proven correct, and applicable to all types of loops. Importantly, it can be applied even if the loop iteration space is unknown statically or at compile time, or more generally if the loop is not in canonical form or contains loop-carried dependency. As contributions we deliver the computational technique, proof of its preservation of semantic correctness, and experimental results to quantify the expected performance gains. We also show that many comparable tools cannot distribute the loops we optimize, and that our technique can be seamlessly integrated into compiler passes or other automatic parallelization suites.
AB - This work leverages an original dependency analysis to parallelize loops regardless of their form in imperative programs. Our algorithm distributes a loop into multiple parallelizable loops, resulting in gains in execution time comparable to state-of-the-art automatic source-to-source code transformers when both are applicable. Our graph-based algorithm is intuitive, language-agnostic, proven correct, and applicable to all types of loops. Importantly, it can be applied even if the loop iteration space is unknown statically or at compile time, or more generally if the loop is not in canonical form or contains loop-carried dependency. As contributions we deliver the computational technique, proof of its preservation of semantic correctness, and experimental results to quantify the expected performance gains. We also show that many comparable tools cannot distribute the loops we optimize, and that our technique can be seamlessly integrated into compiler passes or other automatic parallelization suites.
KW - Abstract interpretation
KW - Automatic parallelization
KW - Dependency analysis
KW - Loop optimization
KW - Program analysis
KW - Program transformation
UR - http://www.scopus.com/inward/record.url?scp=85148684180&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85148684180&partnerID=8YFLogxK
U2 - 10.1007/978-3-031-24950-1_1
DO - 10.1007/978-3-031-24950-1_1
M3 - Conference contribution
AN - SCOPUS:85148684180
SN - 9783031249495
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 1
EP - 24
BT - Verification, Model Checking, and Abstract Interpretation - 24th International Conference, VMCAI 2023, Proceedings
A2 - Dragoi, Cezara
A2 - Emmi, Michael
A2 - Wang, Jingbo
PB - Springer Science and Business Media Deutschland GmbH
T2 - 24th International Conference on Verification, Model Checking, and Abstract Interpretation, VMCAI 2023
Y2 - 16 January 2023 through 17 January 2023
ER -