Inductive Loop Analysis for Practical HPC Application Optimization
Scientific computing applications heavily rely on multi-level loop nests operating on multidimensional arrays. This presents multiple optimization opportunities, from exploiting parallelism to hiding memory latency through prefetching and reducing data movement through improved register usage. HPC frameworks often delegate fine-grained data movement optimization to compilers, but their low-level representations hamper analysis of common patterns, such as strided data accesses and loop-carried dependencies. In this paper, we introduce symbolic, inductive loop optimization (SILO), a novel technique that models data accesses and dependencies as functions of loop nest strides. This abstraction enables the automatic parallelization of sequentially-dependent loops, as well as data movement optimizations including software prefetching and pointer incrementation to reduce register spills. We demonstrate SILO on fundamental kernels from scientific applications with a focus on atmospheric models and numerical solvers, achieving up to 12 × speedup over the state of the art.
Authors
- Tal Ben‐Nun (ORCID: https://orcid.org/0000-0002-3657-6568)
- Philipp Schaad (ORCID: https://orcid.org/0000-0002-8429-7803)
- Torsten Hoefler (ORCID: https://orcid.org/0000-0002-1333-9797)
- Patrick Iff (ORCID: https://orcid.org/0000-0001-5979-4915)
Institutions
- Lawrence Livermore National Laboratory (US)
- ETH Zurich (CH)
Publication Details
- Journal
- ACM Transactions on Architecture and Code Optimization
- Published
- 2026-11-04
- DOI
- https://doi.org/10.1145/3861336
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- European High Performance Computing Joint Undertaking
- U.S. Department of Energy
- European Commission
- Lawrence Livermore National Laboratory