Thomas Wahl, Northeastern University

Friday, December 4, 12:30 - 1:30 PM

Computer Science 105

 

Behavioral Non-Portability in Scientific Numeric Computing

 

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. So far so bad.

 

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 work I will present an algorithm that takes a

numeric procedure and determines an input that is likely to lead to

different decisions depending merely on how the arithmetic in the procedure

is compiled. Our implementation of the algorithm requires minimal

intervention by the user. I will illustrate its operation on examples

characteristic of scientific numeric computing, where control flow

divergence actually occurs across different execution platforms.

 

Time permitting, I will also sketch how to prove the /absence/ of inputs

that may lead to control flow divergence, i.e. how to prove programs

/stable/ (in one of the many senses of this word). This is ongoing work.

 

Thomas Wahl is an Assistant Professor at Northeastern University.

This is joint work with Yijia Gu, Mahsa Bayati, and Miriam Leeser at Northeastern.