Abstract:Floating point computation is by nature inexact, and numerical libraries that intensively involve floating-point computations may encounter high floating-point errors. Due to the wide use of numerical libraries, it is highly desired to reduce high floating-point errors in them. Using higher precision will degrade performance and may also introduce extra errors for certain precision-specific operations in numerical libraries. Using mathematical rewriting that mostly focuses on rearranging floating-point express… Show more
“…The state-of-the-art technique DEMC [Yi et al 2019] uses high-precision resultsf high to guide its search. The dataset for DEMC contains 49 GSL functions that are a subset of the 88 functions that we use as subjects.…”
Section: Evaluation Resultsmentioning
confidence: 99%
“…We evaluate Atomu on 88 functions from the popular GNU Scientific Library (GSL) to demonstrate the effectiveness and runtime efficiency of Atomu. We find that Atomu is at least two orders of magnitude faster than state-of-the-art approaches [Yi et al 2019;Zou et al 2015]. When oracles are available (i.e., the same setting as all existing approaches), Atomu can detect significantly more (40%) buggy functions with significant errors with neither false positives nor false negatives on real-world evaluation subjects (see Section 5.3.2).…”
Section: :3mentioning
confidence: 89%
“…GSL is an open-source numerical library that provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. GSL has been frequently used as test subjects in previous research [Barr et al [Yi et al 2019] for direct comparisons. Our approach is not limited to univariate functions and can be easily applied to multivariate functions by changing the search module's parameters.…”
Section: Methodsmentioning
confidence: 99%
“…For this comparison, we use the state-of-the-art DEMC [Yi et al 2019], whose search method consists of a partitioned global search and a fine-grained search guided by the high-precisionf high . We also compare with LSGA [Zou et al 2015], another approach for detecting floating-point errors.…”
Section: Rq3: How Scalable Is Atomu?mentioning
confidence: 99%
“…As mentioned in Section 2.2, relative error is the prevalent measurement for floating-point errors. There is also the measurement of ErrBits, which we have mentioned in Section 5.3 when comparing our approach with DEMC [Yi et al 2019]. ErrCount is defined as the count of floating-point numbers (F) between the ideal f (x) and the floating-point resultf (x), and ErrBits is defined as the logarithm of ErrCount to base 2:…”
This paper tackles the important, difficult problem of detecting program inputs that trigger large floating-point errors in numerical code. It introduces a novel, principled dynamic analysis that leverages the mathematically rigorously analyzed condition numbers for atomic numerical operations, which we call atomic conditions, to effectively guide the search for large floating-point errors. Compared with existing approaches, our work based on atomic conditions has several distinctive benefits: (1) it does not rely on high-precision implementations to act as approximate oracles, which are difficult to obtain in general and computationally costly; and (2) atomic conditions provide accurate, modular search guidance. These benefits in combination lead to a highly effective approach that detects more significant errors in real-world code (e.g., widely-used numerical library functions) and achieves several orders of speedups over the state-of-the-art, thus making error analysis significantly more practical. We expect the methodology and principles behind our approach to benefit other floating-point program analysis tasks such as debugging, repair and synthesis. To facilitate the reproduction of our work, we have made our implementation, evaluation data and results publicly available on GitHub at https://github.com/FP-Analysis/atomic-condition. CCS Concepts: • Software and its engineering → General programming languages; Software testing and debugging.
“…The state-of-the-art technique DEMC [Yi et al 2019] uses high-precision resultsf high to guide its search. The dataset for DEMC contains 49 GSL functions that are a subset of the 88 functions that we use as subjects.…”
Section: Evaluation Resultsmentioning
confidence: 99%
“…We evaluate Atomu on 88 functions from the popular GNU Scientific Library (GSL) to demonstrate the effectiveness and runtime efficiency of Atomu. We find that Atomu is at least two orders of magnitude faster than state-of-the-art approaches [Yi et al 2019;Zou et al 2015]. When oracles are available (i.e., the same setting as all existing approaches), Atomu can detect significantly more (40%) buggy functions with significant errors with neither false positives nor false negatives on real-world evaluation subjects (see Section 5.3.2).…”
Section: :3mentioning
confidence: 89%
“…GSL is an open-source numerical library that provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. GSL has been frequently used as test subjects in previous research [Barr et al [Yi et al 2019] for direct comparisons. Our approach is not limited to univariate functions and can be easily applied to multivariate functions by changing the search module's parameters.…”
Section: Methodsmentioning
confidence: 99%
“…For this comparison, we use the state-of-the-art DEMC [Yi et al 2019], whose search method consists of a partitioned global search and a fine-grained search guided by the high-precisionf high . We also compare with LSGA [Zou et al 2015], another approach for detecting floating-point errors.…”
Section: Rq3: How Scalable Is Atomu?mentioning
confidence: 99%
“…As mentioned in Section 2.2, relative error is the prevalent measurement for floating-point errors. There is also the measurement of ErrBits, which we have mentioned in Section 5.3 when comparing our approach with DEMC [Yi et al 2019]. ErrCount is defined as the count of floating-point numbers (F) between the ideal f (x) and the floating-point resultf (x), and ErrBits is defined as the logarithm of ErrCount to base 2:…”
This paper tackles the important, difficult problem of detecting program inputs that trigger large floating-point errors in numerical code. It introduces a novel, principled dynamic analysis that leverages the mathematically rigorously analyzed condition numbers for atomic numerical operations, which we call atomic conditions, to effectively guide the search for large floating-point errors. Compared with existing approaches, our work based on atomic conditions has several distinctive benefits: (1) it does not rely on high-precision implementations to act as approximate oracles, which are difficult to obtain in general and computationally costly; and (2) atomic conditions provide accurate, modular search guidance. These benefits in combination lead to a highly effective approach that detects more significant errors in real-world code (e.g., widely-used numerical library functions) and achieves several orders of speedups over the state-of-the-art, thus making error analysis significantly more practical. We expect the methodology and principles behind our approach to benefit other floating-point program analysis tasks such as debugging, repair and synthesis. To facilitate the reproduction of our work, we have made our implementation, evaluation data and results publicly available on GitHub at https://github.com/FP-Analysis/atomic-condition. CCS Concepts: • Software and its engineering → General programming languages; Software testing and debugging.
Tools that automatically prove the absence or detect the presence of large floating-point roundoff errors or the special values NaN and Infinity greatly help developers to reason about the unintuitive nature of floating-point arithmetic. We show that state-of-the-art tools, however, support or provide non-trivial results only for relatively short programs. We propose a framework for combining different static and dynamic analyses that allows to increase their reach beyond what they can do individually. Furthermore, we show how adaptations of existing dynamic and static techniques effectively trade some soundness guarantees for increased scalability, providing conditional verification of floating-point kernels in realistic programs.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.