Dynamic Contract Analysis for Parallel Programming Models
Yussur Mustafa Oraji, Alexander H\"uck, Christian Bischof

TL;DR
This paper introduces CoVer-Dynamic, a dynamic analysis extension for contract-based correctness checking in parallel programming, improving accuracy and performance over static tools and handling runtime-dependent errors.
Contribution
It presents a unified static-dynamic verification framework that enhances correctness checking for parallel programming models using a contract-based approach.
Findings
CoVer-Dynamic improves classification accuracy and reduces false positives.
It achieves a 2x speedup over the state-of-the-art checker MUST.
The approach detects errors beyond static analysis capabilities.
Abstract
Parallel programming in high-performance computing depends on low-level APIs such as MPI, requiring users to manage synchronization and resources manually. Several correctness checking tools exist to help bug-free code development, though most target a single programming model, limiting their applicability. Our previous work, the static analysis tool CoVer, leverages a contract-based approach enabling users to specify custom error-checking rules and support emerging or unconventional programming models without requiring extensive new tooling. However, static analysis cannot fully reason about runtime-dependent behavior such as pointer aliasing or indirect control flow. To address this, we present CoVer-Dynamic, a dynamic analysis extension that reuses CoVer's contract language to provide a unified static-dynamic verification framework. By enforcing the same contracts at runtime,…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Logic, programming, and type systems
