Skip to main content
Log in

PESA: error sensitivity analysis tool for floating-point computational programs

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

Abstract

Floating-point programs are currently extensively applied across various domains of scientific computing. Within such computational programs, there is a propensity to utilize high-precision floating-point variables to ensure the accuracy of the results. However, this practice concurrently leads to a decline in program performance. To address this issue, researchers have aimed to reduce the precision requirements of variables in programs without significant impact on results. Current mixed-precision tools utilize differential derivation to compute variable sensitivity, but this method is cumbersome and can cause memory crashes in intensive computational programs. This paper presents program error sensitivity analysis (PESA), an error sensitivity analysis tool based on variance decomposition, optimized for floating-point programs using LLVM. PESA uses the Sobol method to perform error sensitivity analysis and provides the user with the magnitude of error sensitivity for each variable in the program. Experimental results show that PESA produces error analysis results consistent with other tools and outperforms other sensitivity analysis tools overall by testing six benchmark files and small applications.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Algorithm 1
Algorithm 2
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  1. Goldberg D (1991) What every computer scientist should know about floating-point arithmetic. ACM Comput Surv 23:413

    Article  Google Scholar 

  2. Zhang Z, Xu J, Hao J, Qu Y, He H, Zhou B (2023) Hierarchical search algorithm for error detection in floating-point arithmetic expressions. J Supercomput 80(1):1183–1205

    Article  MATH  Google Scholar 

  3. Chiang W-F, Baranowski M, Briggs I, Solovyev A, Gopalakrishnan G, Rakamaric Z (2017) Rigorous floating-point mixed-precision tuning. In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages

  4. Cherubin S, Cattaneo D, Chiari M, Bello AD, Agosta G (2020) TAFFO: tuning assistant for floating to fixed point optimization. IEEE Embed Syst Lett 12:5–8

    Article  Google Scholar 

  5. Rubio-González C, Nguyen C, Nguyen HD, Demmel J, Kahan W, Sen K, Bailey DH, Iancu C, Hough DG (2013) Precimonious: tuning assistant for floating-point precision. In: 2013 SC-International Conference for High Performance Computing, Networking, Storage and Analysis (SC), pp 1–12

  6. Menon H, Lam MO, Osei-Kuffuor D, Schordan M, Lloyd S, Mohror KM, Hittinger JAF (2018) Adapt: algorithmic differentiation applied to floating-point precision tuning. In: SC18: International Conference for High Performance Computing, Networking, Storage and Analysis, pp 614–626

  7. Singh G, Kundu B, Menon H, Penev A, Lange DJ, Vassilev V (2023) Fast and automatic floating point error analysis with CHEF-FP. In: 2023 IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp 1018–1028

  8. Sobol IM (1993) Sensitivity estimates for nonlinear mathematical models 1(1):112–118 (https://api.semanticscholar.org/CorpusID:115460399) (https://api.semanticscholar.org/CorpusID:115460399)

  9. Chowdhary S, Lim JP, Nagarakatte S (2020) Debugging and detecting numerical errors in computation with posits. In: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation

  10. Zhang Z, Zhou B, Hao J, Yang H, Cui M, Zhou Y, Song G, Li F, Xu J, Zhao J (2023) Eiffel: inferring input ranges of significant floating-point errors via polynomial extrapolation. In: 2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp 1441–1453

  11. Ferson S, Tucker WT (2006) Sensitivity analysis using probability bounding. https://api.semanticscholar.org/CorpusID:13852469

  12. Tian W (2013) A review of sensitivity analysis methods in building energy analysis. Renew Sustain Energy Rev 20:411–419

    Article  MATH  Google Scholar 

  13. Baydin AG, Pearlmutter BA, Radul A, Siskind JM (2015) Automatic differentiation in machine learning: a survey. arXiv:1502.05767

  14. Fel T, Cadene R, Chalvidal M, Cord M, Vigouroux D, Serre T (2021) Look at the variance! efficient black-box explanations with Sobol-based sensitivity analysis. arXiv:2111.04138

  15. Borgonovo E (2017) Sensitivity analysis: an introduction for the management scientist. https://api.semanticscholar.org/CorpusID:64717349

  16. Wei H, Wang J, Shan Y, Guo Z, Ma J (2022) Application of Sobol sensitivity analysis with surrogate model of analytical function. In: 2022 IEEE 2nd International Conference on Power, Electronics and Computer Applications (ICPECA), pp 504–509

  17. Iwanaga T, Usher W, Herman J (2022) Toward SALib 2.0: advancing the accessibility and interpretability of global sensitivity analyses. Socio-Environ Syst Model 4:18155. https://doi.org/10.18174/sesmo.18155

    Article  MATH  Google Scholar 

  18. Lattner C, Adve VS (2004) LLVM: a compilation framework for lifelong program analysis & transformation. In: International Symposium on Code Generation and Optimization (CGO), pp 75–86

  19. Parragi Z, Porkoláb Z (2018) Instrumentation of C++ programs using automatic source code transformations. Studia Universitatis Babeş-Bolyai Informatica

  20. Azzini I, Rosati R (2021) Sobol’ main effect index: an innovative algorithm (IA) using dynamic adaptive variances. Reliab Eng Syst Saf 213:107647

    Article  Google Scholar 

  21. Herman J, Usher W (2017) SALib: an open-source python library for sensitivity analysis. J Open Source Softw 2(9):97. https://doi.org/10.21105/joss.00097

    Article  MATH  Google Scholar 

  22. Saltelli A, Annoni P, Azzini I, Campolongo F, Ratto M, Tarantola S (2010) Variance based sensitivity analysis of model output. Design and estimator for the total sensitivity index. Comput Phys Commun 181:259–270

    Article  MathSciNet  MATH  Google Scholar 

  23. Sun X, Croke BFW, Roberts S, Jakeman AJ (2021) Investigation of determinism-related issues in the Sobol’ low-discrepancy sequence for producing sound global sensitivity analysis indices. ANZIAM J 62:C84–C97

    Article  Google Scholar 

  24. Hastings WK (1970) Monte Carlo sampling methods using Markov chains and their applications. Biometrika 57:97–109

    Article  MathSciNet  MATH  Google Scholar 

  25. Sobol’ IM (2001) Global sensitivity indices for nonlinear mathematical models and their Monte Carlo estimates. Math Comput Simul 55:271–280

    Article  MathSciNet  MATH  Google Scholar 

  26. Sinha S (2017) Hilbert-Schmidt and Sobol sensitivity indices for static and time series WNT signaling measurements in colorectal cancer-part A. BMC Syst Biol 11:1–38

    Article  MATH  Google Scholar 

  27. Parasyris K, Laguna I, Menon H, Schordan M, Osei-Kuffuor D, Georgakoudis G, Lam MO, Vanderbruggen T(2020) HPC-MixPBench: an HPC benchmark suite for mixed-precision analysis. In: 2020 IEEE International Symposium on Workload Characterization (IISWC), pp 25–36

Download references

Funding

There are no financial conflicts of interest to disclose.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bei Zhou.

Ethics declarations

Conflict of interest

All authors disclosed no relevant relationships.

Additional information

Publisher's Note

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

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Cui, M., Xu, J., Zhou, Y. et al. PESA: error sensitivity analysis tool for floating-point computational programs. J Supercomput 81, 477 (2025). https://doi.org/10.1007/s11227-025-06962-z

Download citation

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s11227-025-06962-z

Keywords