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 Jan
|10:30 - 11:00|
|11:00 - 11:30|
Asya FrumkinTel Aviv University, Yotam FeldmanTel Aviv University, Ondřej LhotákUniversity of Waterloo, Canada, Oded PadonTel Aviv University, Mooly SagivTel Aviv University, Sharon ShohamTel Aviv universityFile Attached
|11:30 - 12:00|