Numerical Tools for Non-Experts

Developing reliable numerical software has traditionally been a tedious process which requires significant expertise. Recently, our team at the University of Washington has been investigating how tools may lower the barrier to entry for non-experts. This talk discusses two such tools, Herbgrind (opens in new tab) and Herbie (opens in new tab), that help non-expert developers debug and improve their programs. Herbgrind uses a dynamic program analysis that finds root causes for numerical problems in program binaries. Herbgrind instruments program binaries to additionally compute over shadow values that track floating-point operations in higher precision, then uses a taint analysis to find possible causes for erroneous outputs. To recover the context of root cause instructions, it uses anti-unification to build up an abstract representation of instruction inputs. Herbie uses heuristic search to find more-accurate ways of evaluating floating-point formulas. Herbie uses a variety of rewriting strategies to modify the input formula, focusing changes on the part of the formula responsible for the most error. Then, multiple modified formulas can be combined based into one by finding regions of the input space where they are more accurate.

Date:
Speakers:
Pavel Panchekha
Affiliation:
University of Washington
    • Portrait of Alex Polozov

      Alex Polozov

      Senior Researcher

Series: Microsoft Research Talks