A Novel Loop Fission Technique Inspired by Implicit Computational Complexity

Saved in:
Bibliographic Details
Title: A Novel Loop Fission Technique Inspired by Implicit Computational Complexity
Authors: Aubert, Clément, Rubiano, Thomas, Rusch, Neea, Seiller, Thomas
Contributors: Augusta University, University System of Georgia (USG), Université Paris 13 (UP13), Centre National de la Recherche Scientifique (CNRS)
Source: https://hal.archives-ouvertes.fr/hal-03669387 ; 2022.
Publisher Information: HAL CCSD
Publication Year: 2022
Collection: Archive ouverte HAL (Hyper Article en Ligne, CCSD - Centre pour la Communication Scientifique Directe)
Subject Terms: Implicit Computational Complexity, Loop Transformation, Automatic Parallelization, Analysis and Verification of Parallel Program, [INFO.INFO-LO]Computer Science [cs]/Logic in Computer Science [cs.LO], [MATH.MATH-LO]Mathematics [math]/Logic [math.LO], [INFO.INFO-FL]Computer Science [cs]/Formal Languages and Automata Theory [cs.FL]
Description: This work explores an unexpected application of Implicit Computational Complexity (ICC) to parallelize loops in imperative programs. Thanks to a lightweight dependency analysis, our algorithm allows splitting a loop into multiple loops that can be run in parallel, resulting in gains in terms of execution time similar to state-of-the-art automatic parallelization tools when both are applicable. Our graph-based algorithm is intuitive, language-agnostic, proven correct, and applicable to all types of loops, even if their loop iteration space is unknown statically or at compile time, if they are not in canonical form or if they contain 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. Our benchmarks also show that the technique could be seamlessly integrated into compiler passes or other automatic parallelization suites. We assert that this original and automatable loop transformation method was discovered thanks to the "orthogonal" approach offered by ICC.
Document Type: report
Language: English
Relation: hal-03669387; https://hal.archives-ouvertes.fr/hal-03669387; https://hal.archives-ouvertes.fr/hal-03669387/document; https://hal.archives-ouvertes.fr/hal-03669387/file/main.pdf
Availability: https://hal.archives-ouvertes.fr/hal-03669387
https://hal.archives-ouvertes.fr/hal-03669387/document
https://hal.archives-ouvertes.fr/hal-03669387/file/main.pdf
Rights: info:eu-repo/semantics/OpenAccess
Accession Number: edsbas.114A16DB
Database: BASE
Description
Abstract:This work explores an unexpected application of Implicit Computational Complexity (ICC) to parallelize loops in imperative programs. Thanks to a lightweight dependency analysis, our algorithm allows splitting a loop into multiple loops that can be run in parallel, resulting in gains in terms of execution time similar to state-of-the-art automatic parallelization tools when both are applicable. Our graph-based algorithm is intuitive, language-agnostic, proven correct, and applicable to all types of loops, even if their loop iteration space is unknown statically or at compile time, if they are not in canonical form or if they contain 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. Our benchmarks also show that the technique could be seamlessly integrated into compiler passes or other automatic parallelization suites. We assert that this original and automatable loop transformation method was discovered thanks to the "orthogonal" approach offered by ICC.