Skip to main content

Towards Numerical Assistants

Trust, Measurement, Community, and Generality for the Numerical Workbench

  • Conference paper
  • First Online:
  • 276 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12549))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    We recommend the reader try out the Herbie web demo, at https://herbie.uwplse.org/demo/, to see a report for themselves.

References

  1. Benz, F., Hildebrandt, A., Hack, S.: A dynamic program analysis to find floating-point accuracy problems. In: PLDI 2012, pp. 453–462. ACM (2012)

    Google Scholar 

  2. Becker, H., Panchekha, P., Darulova, E., Tatlock, Z.: Combining tools for optimization and analysis of floating-point computations. In: FM, pp. 355–363 (2018)

    Google Scholar 

  3. Bao, T., Zhang, X.: On-the-fly detection of instability problems in floating-point program execution. SIGPLAN Not. 48(10), 817–832 (2013)

    Article  Google Scholar 

  4. 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)

    Google Scholar 

  5. Cook, J.D.: Software exoskeletons. https://www.johndcook.com/blog/2011/07/21/software-exoskeletons/. Accessed 5 June 2020

  6. 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)

    Google Scholar 

  7. Darulova, E., Horn, E., Sharma, S.: Sound mixed-precision optimization with rewriting. In: ICCPS, pp. 208–219 (2018)

    Google Scholar 

  8. Damouche, N., Martel, M.: Salsa: an automatic tool to improve the numerical accuracy of programs. In: AFM (2017)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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

    Chapter  Google Scholar 

  11. 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

    Chapter  Google Scholar 

  12. Gustafson, J., Yonemoto, I.: Beating floating point at its own game: Posit arithmetic. Supercomput. Front. Innov. 4, 71–86 (2017)

    Google Scholar 

  13. Hamming, R.: Numerical Methods for Scientists and Engineers, 2nd edn. Dover Publications, New York (1987)

    MATH  Google Scholar 

  14. Izycheva, A., Darulova, E.: On sound relative error bounds for floating-point arithmetic. In: FMCAD, pp. 15–22 (2017)

    Google Scholar 

  15. Intel. BFLOAT16 - Hardware Numerics, : White Paper, Document Number: 338302–001US. Revision 1.0

    Google Scholar 

  16. Johnson, J.: Rethinking floating point for deep learning. CoRR, abs/1811.01721 (2018)

    Google Scholar 

  17. 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

    Chapter  Google Scholar 

  18. 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

    Chapter  Google Scholar 

  19. Lee, V.A., Boehm, H.-J.: Optimizing programs over the constructive reals. In: PLDI 1990 (1990)

    Google Scholar 

  20. Martel, M.: Program transformation for numerical precision. In: PEPM 2009, pp. 101–110. ACM (2009)

    Google Scholar 

  21. Panchekha, P., Sanchez-Stern, A., Wilcox, J.R., Tatlock, Z.: Automatically improving accuracy for floating point expressions. In: PLDI (2015)

    Google Scholar 

  22. Rubio-González, C., et al.: Precimonious: tuning assistant for floating-point precision. In: SC, pp. 1–12. IEEE (2013)

    Google Scholar 

  23. Solovyev, A., Jacobsen, C., Rakamaric, Z., Gopalakrishnan, G.: Rigorous estimation of floating-point round-off errors with symbolic Taylor expansions. In: FM (2015)

    Google Scholar 

  24. Sanchez-Stern, A., Panchekha, P., Lerner, S., Tatlock, Z.: Finding root causes of floating point error. In: PLDI, pp. 256–269 (2018)

    Google Scholar 

  25. 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

    Chapter  Google Scholar 

  26. 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

    Chapter  MATH  Google Scholar 

  27. 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)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. Willsey, M., Wang, Y.R., Flatt, O., Nandi, C., Panchekha, P., Tatlock, Z.: egg: Easy, efficient, and extensible e-graphs (2020)

    Google Scholar 

  30. 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)

    Google Scholar 

  31. 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

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Pavel Panchekha .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics