Floating-point arithmetic plays a central role in science, engineering, and finance by enabling developers to approximate real arithmetic. To address numerical issues in large floating-point applications, developers must identify root causes, which is difficult because floating-point errors are generally non-local, non-compositional, and non-uniform.
This paper presents Herbgrind, a tool to help developers identify and address root causes in numerical code written in low-level languages like C/C++ and Fortran. Herbgrind dynamically tracks dependencies between operations and program outputs to avoid false positives and abstracts erroneous computations to simplified program fragments whose improvement can reduce output error. We perform several case studies applying Herbgrind to large, expert-crafted numerical programs and show that it scales to applications spanning hundreds of thousands of lines, correctly handling the low-level details of modern floating point hardware and mathematical libraries and tracking error across function boundaries and through the heap.
Wed 20 Jun Times are displayed in time zone: Eastern Time (US & Canada) change
16:10 - 17:25: Floats and MapsPLDI Research Papers at Grand Ballroom CD Chair(s): Hans-J. BoehmGoogle | |||
16:10 - 16:35 Talk | Finding Root Causes of Floating Point Error PLDI Research Papers Alex Sanchez-SternUniversity of California, San Diego, Pavel PanchekhaUniversity of Washington, Sorin LernerUniversity of California, San Diego, Zachary TatlockUniversity of Washington, Seattle Media Attached | ||
16:35 - 17:00 Talk | Ryƫ: Fast Float-to-String Conversion PLDI Research Papers Ulf AdamsGoogle, Germany Media Attached | ||
17:00 - 17:25 Talk | To-Many or To-One? All-in-One! Efficient Purely Functional Multi-maps with Type-Heterogeneous Hash-Tries PLDI Research Papers Michael J. SteindorferDelft University of Technology, Jurgen VinjuCentrum Wiskunde & Informatica / Technische Universiteit Eindhoven / SWAT.engineering BV Media Attached |