<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: arial,helvetica,sans-serif; font-size: 12pt; color: #000000'><div style="color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div class="WordSection1"><p class="MsoPlainText">Thomas Wahl, Northeastern University</p><p class="MsoPlainText">Friday, December 4, 12:30 - 1:30 PM</p><p class="MsoPlainText">Computer Science 105</p><p class="MsoPlainText">&nbsp;</p><p class="MsoPlainText">Behavioral Non-Portability in Scientific Numeric Computing</p><p class="MsoPlainText">&nbsp;</p><p class="MsoPlainText">The precise semantics of floating-point arithmetic programs depends on the</p><p class="MsoPlainText">execution platform, including the compiler and the target hardware.</p><p class="MsoPlainText">Platform dependencies are particularly pronounced for arithmetic-intensive</p><p class="MsoPlainText">scientific numeric programs and infringe on the highly desirable goal of</p><p class="MsoPlainText">software portability (which is in fact promised by heterogeneous computing</p><p class="MsoPlainText">frameworks like OpenCL): the same program run on the same inputs on</p><p class="MsoPlainText">different platforms can produce different results. So far so bad.</p><p class="MsoPlainText">&nbsp;</p><p class="MsoPlainText">Serious doubts on the portability of numeric applications arise when these</p><p class="MsoPlainText">differences are behavioral, i.e. when they lead to changes in the control</p><p class="MsoPlainText">flow of a program. In this work I will present an algorithm that takes a</p><p class="MsoPlainText">numeric procedure and determines an input that is likely to lead to</p><p class="MsoPlainText">different decisions depending merely on how the arithmetic in the procedure</p><p class="MsoPlainText">is compiled. Our implementation of the algorithm requires minimal</p><p class="MsoPlainText">intervention by the user. I will illustrate its operation on examples</p><p class="MsoPlainText">characteristic of scientific numeric computing, where control flow</p><p class="MsoPlainText">divergence actually occurs across different execution platforms.</p><p class="MsoPlainText">&nbsp;</p><p class="MsoPlainText">Time permitting, I will also sketch how to prove the /absence/ of inputs</p><p class="MsoPlainText">that may lead to control flow divergence, i.e. how to prove programs</p><p class="MsoPlainText">/stable/ (in one of the many senses of this word). This is ongoing work.</p><p class="MsoPlainText">&nbsp;</p><p class="MsoPlainText">Thomas Wahl is an Assistant Professor at Northeastern University.</p><p class="MsoPlainText">This is joint work with Yijia Gu, Mahsa Bayati, and Miriam Leeser at Northeastern.</p><p class="MsoPlainText">&nbsp;</p><p class="MsoPlainText"> </p><p class="MsoNormal">&nbsp;</p><p class="MsoNormal">&nbsp;</p><p class="MsoNormal">&nbsp;</p></div></div><br></div></body></html>