Skip to main content
Log in

Error detection of arithmetic expressions

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Inspecting floating-point errors is essential to floating-point operations. In this paper, we present floating-point error detector (FPED), an inspector of floating-point errors for arithmetic expressions. FPED can pick a suitable benchmark generation approach by analyzing the distribution of the expression of a floating-point operation, thereby minimizing the possibilities of underreporting floating-point errors. FPED is also able to determine the significant sources of errors in a floating-point operation according to the frequencies of computation building blocks that contribute most to the floating-point errors, benefiting the follow-up optimizations of computation accuracies. We validate the correctness and functionalities of FPED by conducting experiments on the FPBench benchmark suite. The experimental results demonstrate that FPED can obtain more accurate detection results than the random detecting approach with respect to floating-point error detection. We also compare FPED with the existing dynamic error detection tools. The experimental results show that in most of the 33 test benchmarks, the maximum error results of FPED are greater than Herbgrind and the detection performance is higher than Herbgrind.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  1. Darulova E, Izycheva A, Nasir F, Ritter F, Becker H, Bastian R (2018) Daisy—framework for analysis and optimization of numerical programs (tool paper). In: Beyer D, Huisman M (eds) Tools and Algorithms for the Construction and Analysis of Systems. TACAS 2018. Lecture Notes in Computer Science, vol 10805. Springer, Cham. https://doi.org/10.1007/978-3-319-89960-2_15

    Chapter  Google Scholar 

  2. Goubault E (2013) Static analysis by abstract interpretation of numerical programs and systems, and FLUCTUAT. In: Logozzo F, Fähndrich M (eds) Static Analysis. SAS 2013. Lecture Notes in Computer Science. https://doi.org/10.1007/978-3-642-38856-9_1

    Chapter  Google Scholar 

  3. de Dinechin F, Lauter C, Melquiond G (2011) Certifying the floating-point implementation of an elementary function using Gappa. IEEE Trans Comput 60(2):242–253. https://doi.org/10.1109/TC.2010.128

    Article  MathSciNet  MATH  Google Scholar 

  4. Darulova E, Kuncak V (2017) Towards a compiler for reals. ACM Trans Program Lang Syst 39(2):1–28. https://doi.org/10.1145/3014426

    Article  Google Scholar 

  5. Solovyev A, Jacobsen C, Rakamarić Z, Gopalakrishnan G (2015) Rigorous Estimation of Floating-Point Round-off Errors with Symbolic Taylor Expansions. In: Bjørner N, de Boer F (eds) FM 2015: Formal Methods. FM 2015. Lecture Notes in Computer Science, vol 9109. Springer, Cham. https://doi.org/10.1145/3230733

    Chapter  Google Scholar 

  6. Cherubin S, Agosta G (2020) Tools for reduced precision computation: a survey. ACM Comput Surv 53(2):35. https://doi.org/10.1145/3381039 (Article 33)

    Article  Google Scholar 

  7. Alex S, Pavel P, Sorin L, Zachary T (2018) Finding root causes of floating point error. In: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2018). Association for Computing Machinery, New York, NY, USA, vol 53. pp 256–269. https://doi.org/10.1145/3296979.3192411

  8. Florian B, Andreas H, Sebastian H (2012) A dynamic program analysis to find floating-point accuracy problems. In: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’12). Association for Computing Machinery, New York, NY, USA, vol 47. pp 453–462 https://doi.org/10.1145/2254064.2254118

  9. Eric S, Rahul S, Alex A (2014) Stochastic optimization of floating-point programs with tunable precision. In: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’14). Association for Computing Machinery, New York, NY, USA, vol 49. pp 53–64. https://doi.org/10.1145/2666356.2594302

  10. Michael OL, Barry LR (2016) Floating-point shadow value analysis. In: Proceedings of the 5th Workshop on Extreme-Scale Programming Tools (ESPT ’16). IEEE Press, pp 18–25. https://doi.org/10.1109/ESPT.2016.007

  11. Févotte F, Lathuilière B (2017) Studying the numerical quality of an industrial computing code: a case study on Code\_aster. In: Abate A, Boldo S (eds) Numerical Software Verification. NSV 2017. Lecture Notes in Computer Science, vol 10381. Springer, Cham, pp 61–80. https://doi.org/10.1007/978-3-319-63501-9_5

    Chapter  Google Scholar 

  12. Damouche N, Martel M, Panchekha P, Qiu C, Sanchez-Stern A, Tatlock Z (2017) Toward a standard benchmark format and suite for floating-point analysis. Lect Notes Comput Sci 10152:63–77. https://doi.org/10.1007/978-3-319-54292-8_6

    Article  Google Scholar 

  13. Laurent F, Guillaume H, Vincent L, Patrick P, Paul Z (2007) MPFR: A multiple-precision binary floating-point library with correct rounding. ACM Trans Math Softw 33:13. https://doi.org/10.1145/1236463.1236468

    Article  MathSciNet  MATH  Google Scholar 

  14. Nicholas N, Julian S (2007) Valgrind: A framework for heavyweight dynamic binary instrumentation. Sigplan Not SIGPLAN 42:89–100. https://doi.org/10.1145/1273442.1250746

    Article  Google Scholar 

Download references

Acknowledgements

This work was supported by the National Natural Science Foundation of China—Precision analysis and optimization of basic mathematical functions on domestic processors (No. 61802434).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jinchen Xu.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Xia, Y., Guo, S., Hao, J. et al. Error detection of arithmetic expressions. J Supercomput 77, 5492–5509 (2021). https://doi.org/10.1007/s11227-020-03469-7

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-020-03469-7

Keywords

Navigation