ITU

Detecting Floating-Point Errors via Atomic Conditions

Research output: Conference Article in Proceeding or Book/Report chapterArticle in proceedingsResearchpeer-review

Standard

Detecting Floating-Point Errors via Atomic Conditions. / Zou, Daming; Zou, Muhan; Xiong, Yiingfei; Fu, Zhoulai; Zhang, Lu; Su, Zhendong.

47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020). Association for Computing Machinery, 2019. 60.

Research output: Conference Article in Proceeding or Book/Report chapterArticle in proceedingsResearchpeer-review

Harvard

Zou, D, Zou, M, Xiong, Y, Fu, Z, Zhang, L & Su, Z 2019, Detecting Floating-Point Errors via Atomic Conditions. in 47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020)., 60, Association for Computing Machinery. https://doi.org/10.1145/3371128

APA

Zou, D., Zou, M., Xiong, Y., Fu, Z., Zhang, L., & Su, Z. (2019). Detecting Floating-Point Errors via Atomic Conditions. In 47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020) [60] Association for Computing Machinery. https://doi.org/10.1145/3371128

Vancouver

Zou D, Zou M, Xiong Y, Fu Z, Zhang L, Su Z. Detecting Floating-Point Errors via Atomic Conditions. In 47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020). Association for Computing Machinery. 2019. 60 https://doi.org/10.1145/3371128

Author

Zou, Daming ; Zou, Muhan ; Xiong, Yiingfei ; Fu, Zhoulai ; Zhang, Lu ; Su, Zhendong. / Detecting Floating-Point Errors via Atomic Conditions. 47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020). Association for Computing Machinery, 2019.

Bibtex

@inproceedings{5ed91c39d2284efa9506c39daea51eff,
title = "Detecting Floating-Point Errors via Atomic Conditions",
abstract = "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.",
keywords = "floating-point error, dynamic analysis",
author = "Daming Zou and Muhan Zou and Yiingfei Xiong and Zhoulai Fu and Lu Zhang and Zhendong Su",
year = "2019",
doi = "10.1145/3371128",
language = "English",
booktitle = "47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020)",
publisher = "Association for Computing Machinery",
address = "United States",

}

RIS

TY - GEN

T1 - Detecting Floating-Point Errors via Atomic Conditions

AU - Zou, Daming

AU - Zou, Muhan

AU - Xiong, Yiingfei

AU - Fu, Zhoulai

AU - Zhang, Lu

AU - Su, Zhendong

PY - 2019

Y1 - 2019

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

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

KW - floating-point error

KW - dynamic analysis

U2 - 10.1145/3371128

DO - 10.1145/3371128

M3 - Article in proceedings

BT - 47th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2020)

PB - Association for Computing Machinery

ER -

ID: 84741315