π€ AI Summary
This work addresses the limitations of existing correctness-checking tools for high-performance computing programs, which are often confined to specific parallel programming models and lack expressive contract specifications. The authors extend the general-purpose verification framework CoVer by introducing a more expressive contract language that, for the first time, enables unified support for cross-language and cross-programming-model parameter validation and memory allocation tracking within a single framework. By integrating static and runtime contract analysis, adopting a decoupled API design, and implementing a multi-language-compatible monitoring mechanism, the approach achieves consistent, high-precision error detection across diverse programming languages. Experimental results demonstrate that the method substantially enhances practical utility and error-detection capability, with only modest and controllable performance overhead.
π Abstract
Correctness checking tools for High-Performance Computing programs are typically limited to specific parallel programming models such as MPI or OpenSHMEM. The CoVer framework previously addressed this by introducing a generic, contract-based approach that decoupled API requirements from the core tool. However, CoVer's effectiveness remains bounded by the expressiveness of its underlying contract language, restricting the types of errors it can verify. This paper presents an extension to the CoVer contract language designed to capture and check a broader range of error classes. Our extensions introduce generic parameter checking and allocation tracking, while keeping generality across both programming model and language. We evaluate these extensions and demonstrate that analysis accuracy remains consistent across multiple languages, reinforcing the framework's general applicability. While the additional runtime analyses naturally incur a performance overhead, these improvements greatly enhance CoVer's utility with a significant accuracy improvement.