Affiliation:
1. University of Copenhagen, Copenhagen, Denmark
2. Texas A&M University, College Station, TX, USA
Abstract
This paper presents a fully automatic approach to loop parallelization that integrates the use of static and run-time analysis and thus overcomes many known difficulties such as nonlinear and indirect array indexing and complex control flow. Our hybrid analysis framework validates the parallelization transformation by verifying the independence of the loop's memory references. To this end it represents array references using the USR (uniform set representation) language and expresses the independence condition as an equation,
S
=0, where
S
is a set expression representing array indexes. Using a language instead of an array-abstraction representation for
S
results in a smaller number of conservative approximations but exhibits a potentially-high runtime cost. To alleviate this cost we introduce a language translation
F
from the USR set-expression language to an equally rich language of predicates (
F
(
S
) ==>
S
= 0). Loop parallelization is then validated using a novel logic inference algorithm that factorizes the obtained complex predicates (F(
S
)) into a sequence of sufficient independence conditions that are evaluated first statically and, when needed, dynamically, in increasing order of their estimated complexities. We evaluate our automated solution on 26 benchmarks from PERFECT-Club and SPEC suites and show that our approach is effective in parallelizing large, complex loops and obtains much better full program speedups than the Intel and IBM Fortran compilers.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
19 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Recurrence Analysis for Automatic Parallelization of Subscripted Subscripts;Proceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming;2024-02-20
2. VeyMont: Parallelising Verified Programs Instead of Verifying Parallel Programs;Formal Methods;2023
3. AD for an Array Language with Nested Parallelism;SC22: International Conference for High Performance Computing, Networking, Storage and Analysis;2022-11
4. Memory Optimizations in an Array Language;SC22: International Conference for High Performance Computing, Networking, Storage and Analysis;2022-11
5. Transforming Domain Models to Efficient C# for the Danish Pension Industry;2022