Behavioral Non-Portability in Scientific Numeric Computing
Thomas Wahl, Northeastern University
Date and Time
Tuesday, June 16th, 2015 at 14:15.
Polacksbacken, room 1245
The precise semantics of floating-point arithmetic programs depends on the execution platform, including the compiler and the target hardware. Platform dependencies are particularly pronounced for arithmetic-intensive scientific numeric programs and infringe on the highly desirable goal of software portability (which is in fact promised by heterogeneous computing frameworks like OpenCL): the same program run on the same inputs on different platforms can produce different results. Serious doubts on the portability of numeric applications arise when these differences are behavioral, i.e. when they lead to changes in the control flow of a program. In this paper we present an algorithm that takes a numeric procedure and determines an input that may lead to different decisions depending on how the arithmetic in the procedure is compiled. Our implementation of the algorithm requires minimal intervention by the user. We illustrate its operation on a diverse set of examples, characteristic of
scientific numeric computing, where control flow divergence actually occurs across different execution platforms.
Joint work with Yijia Gu, Mahsa Bayati, and Miriam Leeser, Northeastern University, Boston, USA.