Distributing and Parallelizing Non-canonical Loops - Archive ouverte HAL
Communication Dans Un Congrès Année : 2023

Distributing and Parallelizing Non-canonical Loops

Distributing and Parallelizing Non-canonical Loops

Résumé

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.
Fichier principal
Vignette du fichier
main.pdf (447.57 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03669387 , version 1 (16-05-2022)
hal-03669387 , version 2 (19-09-2022)

Identifiants

Citer

Clément Aubert, Thomas Rubiano, Neea Rusch, Thomas Seiller. Distributing and Parallelizing Non-canonical Loops. Verification, Model Checking, and Abstract Interpretation (VMCAI 2023), Jan 2023, Boston (MA), United States. ⟨10.1007/978-3-031-24950-1_1⟩. ⟨hal-03669387v2⟩
270 Consultations
353 Téléchargements

Altmetric

Partager

More