Parallel programming introduces notoriously difficult bugs, usually referred to as concurrency bugs. This article investigates the potential for deviating from the conventional wisdom of writing concurrency bug-free, parallel programs. It explores the benefit of accepting buggy but approximately correct parallel programs by leveraging the inherent tolerance of emerging parallel applications to inaccuracy in computations. Under algorithmic noise tolerance, a new class of concurrency bugs, accuracy bugs, degrade the accuracy of computation (often at acceptable levels) rather than causing catastrophic termination. This study demonstrates how embracing accuracy bugs affects the application output quality and performance and analyzes the impact on execution semantics.
|Original language||English (US)|
|Journal||ACM Transactions on Architecture and Code Optimization|
|State||Published - Dec 2016|
Bibliographical noteFunding Information:
This work is a new article, not an extention of a conference paper. The work was supported by the NSF under grant XPS: CCA:1438286 and CCF: SHF 1319983.