The Buoyancy Project
Exploring systems and user approaches to floating point correctness and resilience
About#
Scientific (and other) applications are critically dependent on calculations done using floating point arithmetic. A number of concerns have been raised about correctness in such applications given the numerous gotchas the IEEE floating point standard presents for developers, as well as the complexity of its implementation at the hardware and compiler levels. The Buoyancy Project aims to explore systems- and user-level approaches to improving the correctness and resilience of floating point calculations.
Team#
- Peter Dinda (Northwestern faculty, PI)
- Nick Wanninger (Northwestern Ph.D.)
- Michael Polinski (Northwestern Ph.D.)
- Chris Kraemer (Northwestern Ph.D., now at Georgia Tech)
- Conor Hetland (Northwestern MS, ABD)
- Jiacheng Ma (Northwestern MS, now a Ph.D. student at EPFL)
- Souradip Ghosh (Northwestern BS, now at Carnegie Mellon)
- Yehya Elmasry (Northwestern BS)
- Alex Bernat (Northwestern Special, now at Harvard)
- Charles Bernat (Northwestern Special)
Publications#
P. Dinda, N. Wanninger, J. Ma, A. Bernat, C. Bernat, S. Ghosh, C. Kraemer, Y. Elmasry, FPVM: Towards a Floating Point Virtual Machine, Proceedings of the 31st ACM Symposium on High-performance Parallel and Distributed Computing (HDPC 2022). June, 2022. [paper]
P. Dinda, A. Bernat, Comparing the Understanding of IEEE Floating Point Between Scientific and Non-scientific Developers, Technical Report NU-CS-2021-07, Department of Computer Science, Northwestern University, December, 2021. [paper]
P. Dinda, A. Bernat, C. Hetland, Spying on the Floating Point Behavior of Existing, Unmodifed Scientific Applications, Proceedings of the 29th ACM Symposium on High-performance Parallel and Distributed Computing (HPDC 2020), June, 2020. [paper]
P. Dinda, C. Hetland, Do Developers Understand IEEE Floating Point?, Proceedings of the 32nd IEEE International Parallel and Distributed Processing Symposium (IPDPS 2018), May 2018. [paper]
Software#
- FPVM (Floating Point Virtual Machine) [Work in progress, contact us for a snapshot VM]
- FPSpy (Floating Point Spy)
- User Study Materials and Methodology (take survey yourself)
Teaching#
Sponsors#
The Buoyancy Project is made possible by support from the National Science Foundation via awards CNS-2211315, CCF-2028851, and CNS-1763743.