Stabilizing Numeric Programs against Platform Uncertainties

Guest Speaker:
Thomas Wahl — Northeastern University

Wednesday, October 25, 2017
EEB 248
2:00PM

ABSTRACT: Floating-point arithmetic (FPA) is a loosely standardized approximation of real arithmetic available on many computers today, and widely employed in cyber-physical systems. The use of approximation incurs commonly underestimated risks for the reliability of numeric software, including reproducibility issues caused by the relatively large degree of freedom for FPA implementers offered by the IEEE 754 floating-point standard. If left untreated, such problems can seriously interfere with program portability and simply our trust in numeric results.

In this talk I discuss numeric programs’ lack of robustness against platform variations, including irreproducible control flow and invariants that hold on some platforms but not others. I also demonstrate how such reproducibility violations can be repaired with low impact on performance, which results in a more stable program execution. I illustrate the use of our techniques both on decision-making and on purely numeric programs, and present an outlook to its applicability to addressing reproducibility issues among CPU and GPU versions of kernel support vector machines. Much of this is joint work with Miriam Leeser at Northeastern University, as well as our respective students.

BIO: Thomas Wahl joined the faculty of Northeastern University in 2011. He moved to Boston from Oxford/United Kingdom, where he was a Research Officer in the Computing Laboratory (now Department of Computer Science). Prior to the Oxford experience, Wahl held a postdoctoral position at the Swiss Federal Institute of Technology (ETH) in Zurich. He obtained a PhD degree in Computer Science from the University of Texas at Austin in 2007.

Wahl’s research concerns the reliability of complex computing systems. Two domains notorious for their fragility are concurrency and numerical computing. With colleagues, Wahl has developed leading algorithms and techniques for the automated analysis of concurrent software, such as multi-threaded or data-parallel programs, using rigorous formal techniques, which are able to track down deep and unintuitive program bugs. He has also investigated how floating-point arithmetic can “hijack” a program’s computation when run on non-standard architectures, such as heterogeneous and custom-made embedded platforms.

Hosted by Paul Bogdan