SHF: Small: Indy: Toward Safe and Fast Compiler Flags
University Of Utah, Salt Lake City UT
Investigators
Abstract
Rapid advances in computer architecture are necessitated by the growing demand for computing speed and also energy efficiency. Unfortunately, these advances require significant adaptations of existing software and their recompilation, and when applied to software in scientific simulations and engineering domains, the numeric outputs of these software can change. This issue is of significant concern, as the whole scientific and engineering enterprise rests on reproducible results building on top of prior contributions. This research project develops methods to detect and isolate those software components responsible for changing answers, and produces actionable evidence in terms of the software routines that need to be rewritten. This ensures that scientific software can truly become an asset that serves generations of research, and not be obviated every three or so years when hardware changes. The project develops methods to compile a users' software application or library using different compilers and executing on different platforms. Given a collection of acceptance tests, the tools developed in this work (collectively called "Indy", connoting "Fast and Safe Compiler Flags") help detect those components that produce unacceptably deviant answers. Then, employing code bisection methods, the Indy tools root-cause the source of variability to the level of single file or even to a single function symbol. Given that the methods used by Indy can be computationally intensive, the project also explores machine-learning methods and other static analysis methods to avoid wholesale recompilation and re-execution. The Indy tools are maintained on public repositories, and the investigative team maintains strong connections with user-groups to ensure tool adoption, feedback, and refinement. The project will release Indy as open source and build a user community around Indy by ensuring that interested researchers are able to contribute to the code-base. This will allow a wider growth of the project. This aspect is of special interest to the software cluster in the NSF Office of Advanced Cyberinfrastructure, which is co-funding this award. 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 →