๐ค AI Summary
This work addresses the limited support for Fortran in existing parallel program verification tools, which are predominantly tailored to C/C++, often rely on specific libraries, and cover only a narrow range of error types. To overcome these limitations, the authors extend the general-purpose contract-based verification framework CoVer to Fortran, thereby enabling, for the first time, unified static and dynamic analysis of both C/C++ and Fortran parallel programs. By introducing language-specific contract definitions and adaptation mechanisms, the extended framework effectively bridges the language gap while preserving the original analysis precision. Evaluation on the MPI-BugBench benchmark demonstrates that the approach successfully detects real-world bugs and achieves higher verification efficiency on Fortran programs compared to the state-of-the-art tool MUST.
๐ Abstract
High-performance computing often relies on parallel programming models such as MPI for distributed-memory systems. While powerful, these models are prone to subtle programming errors, leading to development of multiple correctness checking tools. However, these are often limited to C/C++ codes, tied to specific library implementations, or restricted to certain error classes. Building on our prior work with CoVer, a generic, contract-based verification framework for parallel programming models, we extend CoVer's applicability to Fortran, enabling static and dynamic analysis across multiple programming languages. We adapted language-specific contract definitions and modified the analyses to support both C/C++ and Fortran programs. Our evaluation demonstrates that the enhanced version preserves CoVer's analysis accuracy and even revealed a bug in the MPI-BugBench testing framework, underscoring the effectiveness of the approach. The Fortran port of CoVer turns out to be substantially more efficient than the state-of-the-art tool MUST, while maintaining generality across languages.