PLINER: Isolating Lines of Floating-Point Code for Compiler-Induced Variability
PLINER: Isolating Lines of Floating-Point Code for Compiler-Induced Variability
复制标题
DOI:
10.1109/sc41405.2020.00053
复制
发表时间:
2020-11
期刊:
影响因子:
--
通讯作者:
Hui Guo;I. Laguna;Cindy Rubio-González
中科院分区:
文献类型:
--
作者:
Hui Guo;I. Laguna;Cindy Rubio-González
Scientific applications are often impacted by numerical inconsistencies when using different compilers or when a compiler is used with different optimization levels; such inconsistencies hinder reproducibility and can be hard to diagnose. We present PLINER, a tool to automatically pinpoint code lines that trigger compiler-induced variability. PLINER uses a novel approach to enhance floating-point precision at different levels of code granularity, and performs a guided search to identify locations affected by numerical inconsistencies. We demonstrate PLINER on a real-world numerical inconsistency that required weeks to diagnose, which PLINER isolates in minutes. We also evaluate PLiNER on 100 synthetic programs, and the NAS Parallel Benchmarks (NPB). On the synthetic programs, PLiNER detects the affected lines of code 87% of the time while the stateof-the-art approach only detects the affected lines 6% of the time. Furthermore, PLINER successfully isolates all numerical inconsistencies found in the NPB.