Abstract
The last few years have seen an explosion of work on tools that address numerical error in scientific, mathematical, and engineering software. The resulting tools can provide essential guidance to expert non-experts: scientists, mathematicians, and engineers for whom mathematical computation is essential but who may have little formal training in numerical methods. It is now time for these tools to move into practice.
Practitioners need a “numerical workbench” that not only succeeds as a research artifact but as a daily tool. We describe our experience adapting Herbie, a tool for numerical error repair, from a research prototype to a reliable workhorse for daily use. In particular, we focus on how we worked to increase user trust and use internal measurement to polish the tool. Looking more broadly, we show that community development and an investment in the generality of our tools, such as through the FPBench project, will better support users and strengthen our research community.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
We recommend the reader try out the Herbie web demo, at https://herbie.uwplse.org/demo/, to see a report for themselves.
References
Benz, F., Hildebrandt, A., Hack, S.: A dynamic program analysis to find floating-point accuracy problems. In: PLDI 2012, pp. 453–462. ACM (2012)
Becker, H., Panchekha, P., Darulova, E., Tatlock, Z.: Combining tools for optimization and analysis of floating-point computations. In: FM, pp. 355–363 (2018)
Bao, T., Zhang, X.: On-the-fly detection of instability problems in floating-point program execution. SIGPLAN Not. 48(10), 817–832 (2013)
Chiang, W.F., Baranowski, M., Briggs, I., Solovyev, A., Gopalakrishnan, G., Rakamaric, Z.: Rigorous floating-point mixed-precision tuning. In: POPL, pp. 300–315 (2017)
Cook, J.D.: Software exoskeletons. https://www.johndcook.com/blog/2011/07/21/software-exoskeletons/. Accessed 5 June 2020
Claude, M., Rueher, M.: Dedicated search strategies for finding critical counterexamples in programs with floating point computations. In: 2019 IEEE International Conference on Artificial Intelligence Testing (AITest), pp. 138–139 (2019)
Darulova, E., Horn, E., Sharma, S.: Sound mixed-precision optimization with rewriting. In: ICCPS, pp. 208–219 (2018)
Damouche, N., Martel, M.: Salsa: an automatic tool to improve the numerical accuracy of programs. In: AFM (2017)
Damouche, N., Martel, M., Chapoutot, A.: Formal methods for industrial critical systems. In: 20th International Workshop, FMICS 2015, Oslo, Norway, 22–23 June 2015, pp. 31–46 (2015)
Damouche, N., Martel, M., Panchekha, P., Qiu, C., Sanchez-Stern, A., Tatlock, Z.: Toward a standard benchmark format and suite for floating-point analysis. In: Bogomolov, S., Martel, M., Prabhakar, P. (eds.) NSV 2016. LNCS, vol. 10152, pp. 63–77. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-54292-8_6
Darulova, E., Volkova, A.: Sound approximation of programs with elementary functions. In: Dillig, I., Tasiran, S. (eds.) CAV 2019. LNCS, vol. 11562, pp. 174–183. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-25543-5_11
Gustafson, J., Yonemoto, I.: Beating floating point at its own game: Posit arithmetic. Supercomput. Front. Innov. 4, 71–86 (2017)
Hamming, R.: Numerical Methods for Scientists and Engineers, 2nd edn. Dover Publications, New York (1987)
Izycheva, A., Darulova, E.: On sound relative error bounds for floating-point arithmetic. In: FMCAD, pp. 15–22 (2017)
Intel. BFLOAT16 - Hardware Numerics, : White Paper, Document Number: 338302–001US. Revision 1.0
Johnson, J.: Rethinking floating point for deep learning. CoRR, abs/1811.01721 (2018)
Jacquemin, M., Putot, S., Védrine, F.: A reduced product of absolute and relative error bounds for floating-point analysis. In: Podelski, A. (ed.) SAS 2018. LNCS, vol. 11002, pp. 223–242. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-99725-4_15
Kneusel, R.T.: Arbitrary precision floating-point. Numbers and Computers, pp. 265–292. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-50508-4_9
Lee, V.A., Boehm, H.-J.: Optimizing programs over the constructive reals. In: PLDI 1990 (1990)
Martel, M.: Program transformation for numerical precision. In: PEPM 2009, pp. 101–110. ACM (2009)
Panchekha, P., Sanchez-Stern, A., Wilcox, J.R., Tatlock, Z.: Automatically improving accuracy for floating point expressions. In: PLDI (2015)
Rubio-González, C., et al.: Precimonious: tuning assistant for floating-point precision. In: SC, pp. 1–12. IEEE (2013)
Solovyev, A., Jacobsen, C., Rakamaric, Z., Gopalakrishnan, G.: Rigorous estimation of floating-point round-off errors with symbolic Taylor expansions. In: FM (2015)
Sanchez-Stern, A., Panchekha, P., Lerner, S., Tatlock, Z.: Finding root causes of floating point error. In: PLDI, pp. 256–269 (2018)
Salvia, R., Titolo, L., Feliú, M.A., Moscato, M.M., Muñoz, C.A., Rakamarić, Z.: A mixed real and floating-point solver. In: Badger, J.M., Rozier, K.Y. (eds.) NFM 2019. LNCS, vol. 11460, pp. 363–370. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-20652-9_25
Titolo, L., Feliú, M.A., Moscato, M., Muñoz, C.A.: An abstract interpretation framework for the round-off error analysis of floating-point programs. VMCAI 2018. LNCS, vol. 10747, pp. 516–537. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-73721-8_24
Thien, D., Zorn, B., Panchekha, P., Tatlock, Z.: Toward multi-precision, multi-format numerics. In: 2019 IEEE/ACM 3rd International Workshop on Software Correctness for HPC Applications (Correctness), pp. 19–26 (2019)
Thien, D., Zorn, B., Panchekha, P., Tatlock, Z.: Toward multi-precision, multi-format numerics. In: Laguna, I., Rubio-González, C. (ed) 2019 IEEE/ACM 3rd International Workshop on Software Correctness for HPC Applications (Correctness), Denver, CO, USA, 18 November 2019, pp. 19–26. IEEE (2019)
Willsey, M., Wang, Y.R., Flatt, O., Nandi, C., Panchekha, P., Tatlock, Z.: egg: Easy, efficient, and extensible e-graphs (2020)
Yi, X., Chen, L., Mao, X., Ji, T.: Automated repair of high inaccuracies in numerical programs. In: 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 514–518 (2017)
Zitoun, H., Michel, C., Rueher, M., Michel, L.: Sub-domain selection strategies for floating point constraint systems. In: 24th International Conference on Principles and Practice of Constraint Programming Doctoral Program CP 2018, July 2018
Acknowledgements
Herbie and FPBench are the result of many years of work from stellar contributors including Alex Sanchez-Stern, Bill Zorn, David Thien, Oliver Flatt, Brett Saiki, Jason Qiu, Ian Briggs, Heiko Becker, Eva Darulova, Max Willsey, James Wilcox, and many others. This work was supported by the Applications Driving Architectures (ADA) Research Center, a JUMP Center co-sponsored by SRC and DARPA.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Panchekha, P., Tatlock, Z. (2020). Towards Numerical Assistants. In: Christakis, M., Polikarpova, N., Duggirala, P.S., Schrammel, P. (eds) Software Verification. NSV VSTTE 2020 2020. Lecture Notes in Computer Science(), vol 12549. Springer, Cham. https://doi.org/10.1007/978-3-030-63618-0_13
Download citation
DOI: https://doi.org/10.1007/978-3-030-63618-0_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-63617-3
Online ISBN: 978-3-030-63618-0
eBook Packages: Computer ScienceComputer Science (R0)