GGrantIndex
← Search

CNS Core: Medium: A Systems and User-based Approach to Floating Point Correctness and Resilience

$830,834FY2022CSENSF

Northwestern University, Evanston IL

Investigators

Abstract

Computer arithmetic approximates the forms of arithmetic that humans use. This approximation can lead to errors for at least two reasons: computer arithmetic is inherently limited in the range and precision of numbers it can handle, and some familiar rules of “human arithmetic” may not apply, leading software developers to introduce bugs that lead to errors. In addition, computer arithmetic implementations, both in hardware and software, are quickly becoming more complex, potentially making developers more conservative out of fear of introducing new kinds of bugs by using them. This project will approach these problems from two new perspectives. From the user perspective, the project will study scientific and other software developers to better gauge their understanding of floating point arithmetic, the most common form of computer arithmetic in scientific applications, and to develop insights on how to better train developers. From the systems perspective, the project will study how to virtualize floating point arithmetic with high performance, making it easier to plug in alternative computer arithmetic systems with different properties, and tools for detecting problems with particular arithmetic systems. The project will also study important scientific applications using the tools it develops, as well as those developed by others. Science and engineering applications are increasingly critical to the economic, military, and environmental health of the nation. It is essential that such applications produce trustworthy results, regardless of the complexity of computer arithmetic and its implementations. Because computer arithmetic, and, more specifically, the IEEE standard for floating point arithmetic on which the project focuses, is a common denominator for most such applications, the project has the potential to improve such applications. Additionally, the project has the potential to better understand software developers, particularly scientific software developers, and thus develop better ways to train them with regard to floating point arithmetic. A collaboration with two national labs forms part of the project, and this will allow access both to scientific developers and to scientific applications that will serve to ground the project and hopefully also provide direct benefit beyond the expected research contributions. The project will also develop a training methodology for scientific developers, and an appropriate lab for undergraduates. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →