Offline enforcement of contracts for high‐performance computing
Kostadin Damevski · Concurrency and Computation Practice and Experience · 2011
Abstract Design by contract is a well‐known software design methodology which enhances the quality of software through assertions expressed at the interface level. The overhead averse nature of High‐Performance Computing (HPC) applications often precludes the use of design by contract due to its potential overhead, especially when handling the large data sizes common in HPC. Our approach is to reduce the overhead of design by contract, by postponing (or offloading) across time and space the enforcement of contracts. We argue that the semantic implications of this approach are not significant, while leading to a large potential overhead reduction. A reduced overhead strategy to contract implementation may be necessary for a wider acceptance of this useful software engineering primitive. We apply our approach to contracts developed for software components based on the CCA (Common Component Architecture) model, which targets HPC applications. Copyright © 2011 John Wiley & Sons, Ltd.