基于契约的并行编程模型的分配跟踪与参数检查
Allocation Tracking and Parameter Checking for Parallel Programming Models using Contracts
浏览论文内容
中文总结 AI 辅助
针对CoVer框架契约语言表达能力有限的问题,本文扩展了其通用参数检查和分配跟踪功能,保持跨编程模型与语言的通用性,提升了分析准确性与实用性,仅带来适度性能开销。
中文摘要 AI 辅助
高性能计算程序的正确性检查工具通常仅适用于MPI或OpenSHMEM等特定并行编程模型。CoVer框架此前通过引入通用的基于契约的方法解决了这一问题,该方法将API需求与工具核心解耦。然而,CoVer的有效性受限于其底层契约语言的表达能力,限制了它可验证的错误类型。本文提出了对CoVer契约语言的扩展,旨在捕获和检查更广泛的错误类别。我们的扩展引入了通用参数检查和分配跟踪,同时保持了跨编程模型和语言的通用性。我们对这些扩展进行了评估,结果表明分析准确性在多种语言中保持一致,增强了该框架的通用性。尽管额外的运行时分析自然会带来性能开销,但这些改进大幅提升了CoVer的实用性,使准确性得到显著提升。
英文摘要
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.