Tutorial on Floating-Point Analysis Tools
TimeTuesday, July 301:30pm - 5pm
DescriptionScientific software is central to the practice of research computing. While scientific software is widely used in several science and engineering disciplines to simulate real-world phenomena, developing accurate and reliable scientific software is notoriously difficult. One of the most serious difficulties come from dealing with floating-point arithmetic to perform numerical computations. Round-off errors occur and accumulate at all levels of computation, and compiler optimizations and low precision arithmetic can significantly affect the final computational results. With accelerators such as GPUs dominating high-performance computing systems, computational scientists are faced with even bigger challenges, given that ensuring numerical reproducibility in these systems pose a very difficult problem.
This tutorial will demonstrate tools that are available today to analyze floating-point scientific software. We focus on tools that allow programmers to get insight about how different aspects of floating-point arithmetic affect their code and how to fix potential bugs. The tools presented in the tutorial will allow programmers to understand how compiler optimizations affect floating-point computations, detect hidden floating-point exceptions on GPUs, reduce floating-point precision to obtain performance speedups, and understand the sensitivity of different regions of the code to floating-point rounding errors.