{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,2]],"date-time":"2026-10-02T10:24:24Z","timestamp":1790936664404,"version":"4.1.0"},"reference-count":60,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA2","license":[{"start":{"date-parts":[[2022,10,31]],"date-time":"2022-10-31T00:00:00Z","timestamp":1667174400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1908798, 2110861"],"award-info":[{"award-number":["1908798, 2110861"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2022,10,31]]},"abstract":"<jats:p>This paper proposes, EFTSanitizer, a fast shadow execution framework for detecting and debugging numerical errors during late stages of testing especially for long-running applications. Any shadow execution framework needs an oracle to compare against the floating point (FP) execution. This paper makes a case for using error free transformations, which is a sequence of operations to compute the error of a primitive operation with existing hardware supported FP operations, as an oracle for shadow execution. Although the error of a single correctly rounded FP operation is bounded, the accumulation of errors across operations can result in exceptions, slow convergences, and even crashes. To ease the job of debugging such errors, EFTSanitizer provides a directed acyclic graph (DAG) that highlights the propagation of errors, which results in exceptions or crashes. Unlike prior work, DAGs produced by EFTSanitizer include operations that span various function calls while keeping the memory usage bounded. To enable the use of such shadow execution tools with long-running applications, EFTSanitizer also supports starting the shadow execution at an arbitrary point in the dynamic execution, which we call selective shadow execution. EFTSanitizer is an order of magnitude faster than prior state-of-art shadow execution tools such as FPSanitizer and Herbgrind. We have discovered new numerical errors and debugged them using EFTSanitizer.<\/jats:p>","DOI":"10.1145\/3563353","type":"journal-article","created":{"date-parts":[[2022,10,31]],"date-time":"2022-10-31T20:23:35Z","timestamp":1667247815000},"page":"1845-1872","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":13,"title":["Fast shadow execution for debugging numerical errors using error free transformations"],"prefix":"10.1145","volume":"6","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3053-230X","authenticated-orcid":false,"given":"Sangeeta","family":"Chowdhary","sequence":"first","affiliation":[{"name":"Rutgers University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5048-8548","authenticated-orcid":false,"given":"Santosh","family":"Nagarakatte","sequence":"additional","affiliation":[{"name":"Rutgers University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2022,10,31]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523447"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509136.2509526"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2429069.2429133"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254118"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/ARITH.2003.1207663"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/3054947"},{"key":"e_1_2_1_7_1","unstructured":"Cadna. 2022. The gaussian method. https:\/\/www-pequan.lip6.fr\/cadna\/Examples_Dir\/ex6.php \t\t\t\t  Cadna. 2022. The gaussian method. https:\/\/www-pequan.lip6.fr\/cadna\/Examples_Dir\/ex6.php"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009846"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3386004"},{"key":"e_1_2_1_10_1","unstructured":"Sangeeta Chowdhary Jay P Lim and Santosh Nagarakatte. 2020. FPSanitizer - A debugger to detect and diagnose numerical errors in floating point programs. https:\/\/github.com\/rutgers-apl\/fpsanitizer \t\t\t\t  Sangeeta Chowdhary Jay P Lim and Santosh Nagarakatte. 2020. FPSanitizer - A debugger to detect and diagnose numerical errors in floating point programs. https:\/\/github.com\/rutgers-apl\/fpsanitizer"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468585"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.7080559"},{"key":"e_1_2_1_13_1","doi-asserted-by":"crossref","unstructured":"Sangeeta Chowdhary and Santosh Nagarakatte. 2022. EFTSantizer: Fast Shadow Execution for Debugging Numerical Errors using Error Free Transformations. https:\/\/github.com\/rutgers-apl\/EFTSanitizer \t\t\t\t  Sangeeta Chowdhary and Santosh Nagarakatte. 2022. EFTSantizer: Fast Shadow Execution for Debugging Numerical Errors using Error Free Transformations. https:\/\/github.com\/rutgers-apl\/EFTSanitizer","DOI":"10.1145\/3563353"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1117\/12.505591"},{"key":"e_1_2_1_15_1","unstructured":"Catherine Daramy-Loirat David Defour Florent de Dinechin Matthieu Gallet Nicolas Gast Christoph Lauter and Jean-Michel Muller. 2006. CR-LIBM A library of correctly rounded elementary functions in double-precision. Laboratoire de l\u2019Informatique du Parall\u00e9lisme. https:\/\/hal-ens-lyon.archives-ouvertes.fr\/ensl-01529804 \t\t\t\t  Catherine Daramy-Loirat David Defour Florent de Dinechin Matthieu Gallet Nicolas Gast Christoph Lauter and Jean-Michel Muller. 2006. CR-LIBM A library of correctly rounded elementary functions in double-precision. Laboratoire de l\u2019Informatique du Parall\u00e9lisme. https:\/\/hal-ens-lyon.archives-ouvertes.fr\/ensl-01529804"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-89960-2_15"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2535838.2535874"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC41405.2020.00055"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1141277.1141584"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01397083"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-74061-2_27"},{"key":"e_1_2_1_22_1","unstructured":"Nestor Demeure. 2020. Compromise between precision and performance in high-performance computing. Ph. D. Dissertation. Universit\u00e9 Paris-Saclay. https:\/\/tel.archives-ouvertes.fr\/tel-03116750 \t\t\t\t  Nestor Demeure. 2020. Compromise between precision and performance in high-performance computing. Ph. D. Dissertation. Universit\u00e9 Paris-Saclay. https:\/\/tel.archives-ouvertes.fr\/tel-03116750"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3369583.3392673"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-73721-8_24"},{"key":"e_1_2_1_25_1","volume-title":"VERROU: Assessing Floating-Point Accuracy Without Recompiling. Oct., https:\/\/hal.archives-ouvertes.fr\/hal-01383417 working paper or preprint","author":"F\u00e9votte Fran\u00e7ois","year":"2016","unstructured":"Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re . 2016 . VERROU: Assessing Floating-Point Accuracy Without Recompiling. Oct., https:\/\/hal.archives-ouvertes.fr\/hal-01383417 working paper or preprint Fran\u00e7ois F\u00e9votte and Bruno Lathuili\u00e8re. 2016. VERROU: Assessing Floating-Point Accuracy Without Recompiling. Oct., https:\/\/hal.archives-ouvertes.fr\/hal-01383417 working paper or preprint"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1236463.1236468"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-27940-9_16"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/103162.103163"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-47764-0_14"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-79707-4_3"},{"key":"e_1_2_1_31_1","volume-title":"Accuracy and Stability of Numerical Algorithms","author":"Higham Nicholas J.","unstructured":"Nicholas J. Higham . 2002. Accuracy and Stability of Numerical Algorithms ( 2 nd ed.). Society for Industrial and Applied Mathematics, Philadelphia, PA , USA. isbn:0898715210 Nicholas J. Higham. 2002. Accuracy and Stability of Numerical Algorithms (2nd ed.). Society for Industrial and Applied Mathematics, Philadelphia, PA, USA. isbn:0898715210","edition":"2"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/ARITH.2018.8464793"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cpc.2008.02.003"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/363707.363723"},{"key":"e_1_2_1_35_1","doi-asserted-by":"crossref","unstructured":"Ian Karlin Jeff Keasler and Rob Neely. 2013. LULESH 2.0 Updates and Changes. 1\u20139. \t\t\t\t  Ian Karlin Jeff Keasler and Rob Neely. 2013. LULESH 2.0 Updates and Changes. 1\u20139.","DOI":"10.2172\/1090032"},{"key":"e_1_2_1_36_1","volume-title":"The Art of Computer Programming","author":"Knuth Donald E.","year":"2018","unstructured":"Donald E. Knuth . 1997. The Art of Computer Programming , Volume 2 ( 3 rd Ed.): Seminumerical Algorithms. Addison-Wesley Longman Publishing Co. , Inc., USA. isbn:0 2018 96842 Donald E. Knuth. 1997. The Art of Computer Programming, Volume 2 (3rd Ed.): Seminumerical Algorithms. Addison-Wesley Longman Publishing Co., Inc., USA. isbn:0201896842","edition":"3"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.4230\/DagSemProc.05391.3"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814270.2814299"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/3434310"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454049"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/3498664"},{"key":"e_1_2_1_45_1","unstructured":"LLNL. 2022. AMG. https:\/\/asc.llnl.gov\/codes\/proxy-apps\/amg2013 \t\t\t\t  LLNL. 2022. AMG. https:\/\/asc.llnl.gov\/codes\/proxy-apps\/amg2013"},{"key":"e_1_2_1_46_1","unstructured":"LLNL. 2022. High-order Lagrangian Hydrodynamics Miniapp. https:\/\/github.com\/CEED\/Laghos \t\t\t\t  LLNL. 2022. High-order Lagrangian Hydrodynamics Miniapp. https:\/\/github.com\/CEED\/Laghos"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4899-7983-4"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-76526-6"},{"key":"e_1_2_1_49_1","volume-title":"Practical Low-Overhead Enforcement of Memory Safety for C Programs. Ph. D. Dissertation","author":"Nagarakatte Santosh","unstructured":"Santosh Nagarakatte . 2012. Practical Low-Overhead Enforcement of Memory Safety for C Programs. Ph. D. Dissertation . University of Pennsylvania . Santosh Nagarakatte. 2012. Practical Low-Overhead Enforcement of Memory Safety for C Programs. Ph. D. Dissertation. University of Pennsylvania."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806651.1806657"},{"key":"e_1_2_1_51_1","unstructured":"NAS. 2022. NAS Parallel Benchmarks 3.0. https:\/\/github.com\/benchmark-subsetting\/NPB3.0-omp-C \t\t\t\t  NAS. 2022. NAS Parallel Benchmarks 3.0. https:\/\/github.com\/benchmark-subsetting\/NPB3.0-omp-C"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250746"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1137\/030601818"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/2813885.2737959"},{"key":"e_1_2_1_55_1","unstructured":"Douglas M. Priest. 1992. On Properties of Floating Point Arithmetics: Numerical Stability and the Cost of Accurate Computations. Ph. D. Dissertation. USA. UMI Order No. GAX93-30692 \t\t\t\t  Douglas M. Priest. 1992. On Properties of Floating Point Arithmetics: Numerical Stability and the Cost of Accurate Computations. Ph. D. Dissertation. USA. UMI Order No. GAX93-30692"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1137\/080738490"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192411"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1007\/PL00009321"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/3230733"},{"key":"e_1_2_1_60_1","volume-title":"Floating-point computation","author":"Sterbenz Pat H","unstructured":"Pat H Sterbenz . 1974. Floating-point computation . Prentice-Hall , Englewood Cliffs, NJ . Pat H Sterbenz. 1974. Floating-point computation. Prentice-Hall, Englewood Cliffs, NJ."},{"key":"e_1_2_1_61_1","unstructured":"US-GAO United States General Accounting Office. 1992. Patriot Missile Defense: Software Problem Led to System Failure at Dhahran Saudi Arabia. https:\/\/www.gao.gov\/products\/IMTEC-92-26 \t\t\t\t  US-GAO United States General Accounting Office. 1992. Patriot Missile Defense: Software Problem Led to System Failure at Dhahran Saudi Arabia. https:\/\/www.gao.gov\/products\/IMTEC-92-26"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409720"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/3371128"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563353","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3563353","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3563353","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:02:33Z","timestamp":1750186953000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3563353"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,10,31]]},"references-count":60,"journal-issue":{"issue":"OOPSLA2","published-print":{"date-parts":[[2022,10,31]]}},"alternative-id":["10.1145\/3563353"],"URL":"https:\/\/doi.org\/10.1145\/3563353","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,10,31]]},"assertion":[{"value":"2022-10-31","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}