Stabilizing Floating-Point Programs using Provenance Analysis
Floating-point arithmetic is a loosely standardized approxi- mation of real arithmetic available on many computers today. Architec- tural and compiler differences can lead to different calculations across platforms, for identical inputs. If left untreated, platform dependence, called volatility in this paper, seriously interferes with result reproducibil- ity and program portability. We present an approach to stabilizing float- ing-point programs against volatility. Our approach, dubbed provenance analysis, traces differences observed in a given intermediate expression E back to volatility in preceding statements, and quantifies each such statement’s contribution to the volatility in E. Program fragments con- tributing the most are candidates for stabilization, which happens by disambiguating the arithmetic using expression rewriting and statement- level control pragmas. The benefit of local program stabilization is that compilers are free to engage performance- or precision-enhancing op- timizations across harmless program fragments. We have implemented our technique in a dynamic analysis tool that reports both volatility and provenance information. We demonstrate that local program stabiliza- tion often suffices to reduce platform dependence to an acceptable level.
Sun 15 JanDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:00
|Partitioned Memory Models for Program Analysis.|
|Property Directed Reachability for Proving Absence of Concurrent Modification Errors|
Asya Frumkin Tel Aviv University, Yotam M. Y. Feldman Tel Aviv University, Ondřej Lhoták University of Waterloo, Canada, Oded Padon Tel Aviv University, Mooly Sagiv Tel Aviv University, Sharon Shoham Tel Aviv universityFile Attached
|Stabilizing Floating-Point Programs using Provenance Analysis|