What every computer scientist should know about floating-point arithmetic
ACM Computing Surveys (CSUR)
Flexible Diff-ing in a collaborative writing system
CSCW '92 Proceedings of the 1992 ACM conference on Computer-supported cooperative work
Projects in scientific computation
Projects in scientific computation
Change detection in hierarchically structured information
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
Algorithms on strings, trees, and sequences: computer science and computational biology
Algorithms on strings, trees, and sequences: computer science and computational biology
Applications of randomization to floating-point arithmetic and to linear systems solutions
Applications of randomization to floating-point arithmetic and to linear systems solutions
Monte Carlo arithmetic: how to gamble with floating point and win
Computing in Science and Engineering
Accuracy and Stability of Numerical Algorithms
Accuracy and Stability of Numerical Algorithms
Numerical Methods for Scientists and Engineers
Numerical Methods for Scientists and Engineers
Semantic Diff: A Tool for Summarizing the Effects of Modifications
ICSM '94 Proceedings of the International Conference on Software Maintenance
Perturbing numerical calculations for statistical analysis of floating-point program (in)stability
Proceedings of the 19th international symposium on Software testing and analysis
Hi-index | 0.00 |
Wonglediff is a program that tests the sensitivity of arbitrary program executables or processes to changes that are introduced by a process that runs in parallel. On Unix and Linux kernels, wonglediff creates a supervisor process that runs applications and on the fly, introduces desired changes to their process state. When execution terminates, it then summarizes the resulting changes in the output files. The technique employed has a variety of uses. This paper describes an implementation of wonglediff that checks the sensitivity of programs to random changes in the floating-point rounding modes. It runs a program several times, 'wongling' it each time: randomly toggling the IEEE-754 rounding mode of the program as it executes. By comparing the resulting output, one gets a poor man's numerical stability analysis for the program. Although the analysis does not give any kind of guarantee about a program's stability, it can reveal genuine instability, and it does serve as a particularly useful and revealing idiot light. In our implementation, differences among the output files from the program's multiple runs are summarized in a report. This report is in fact an HTML version of the output file, with inline mark-up summarizing individual differences among the multiple instances. When viewed with a browser, the differences can be highlighted or rendered in many different ways.