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 reducing data movement through prefetching and 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
- Philipp Schaad (ORCID: https://orcid.org/0000-0002-8429-7803)
- Tal Ben-Nun
- Patrick Iff
- Torsten Hoefler
Publication Details
- Journal
- Repository for Publications and Research Data (ETH Zurich)
- Published
- 2025-11-08
- DOI
- https://doi.org/10.3929/ethz-c-000792575
- Primary Topic
- Parallel Computing and Optimization Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00