Mostly Automated Formal Verification of Loop Dependencies with Applications to Distributed Stencil Algorithms
Name
10817_2018_9451_ReferencePDF.pdf
Size
226.53 KB
Format
Adobe PDF
Checksum (MD5)
3c32366d5d4ed64f4a1ec71802eb34c0
Author(s) •
Grégoire, Thomas
Chlipala, Adam
Date Issued
February 14, 2018
Publisher
Springer Netherlands
Version
Author's final manuscript
Abstract
Abstract
The class of stencil programs involves repeatedly updating elements of arrays according to fixed patterns, referred to as stencils. Stencil problems are ubiquitous in scientific computing and are used as an ingredient to solve more involved problems. Their high regularity allows massive parallelization. Two important challenges in designing such algorithms are cache efficiency and minimizing the number of communication steps between nodes. In this paper, we introduce a mathematical framework for a crucial aspect of formal verification of both sequential and distributed stencil algorithms, and we describe its Coq implementation. We present a domain-specific embedded programming language with support for automating the most tedious steps of proofs that nested loops respect dependencies, applicable to sequential and distributed examples. Finally, we evaluate the robustness of our library by proving the dependency-correctness of some real-world stencil algorithms, including a state-of-the-art cache-oblivious sequential algorithm, as well as two optimized distributed kernels.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1007/s10817-018-9451-y