[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/2093889.2093918dlproceedingsArticle/Chapter ViewAbstractPublication PagescasconConference Proceedingsconference-collections
research-article

Towards the profiling of scientific software for accuracy

Published: 07 November 2011 Publication History

Abstract

For scientific computational software, accuracy is a constant concern. While existing tools and techniques can estimate the output accuracy, they do not attempt to locate where these errors come from and which parts of the code are most responsible for their amplification. In the related problem of software performance optimization, the Pareto principle, also known as the 80/20 rule, is used to great effect. Because the performance of software is typically dependent on only a few critical sections of code, efforts in optimization can be focused on locating these sections with the help of a profiler and then optimizing only the functions that will have the greatest effect on overall performance.
Does the Pareto principle also apply in the case of software accuracy? To study this problem, we develop a novel approach for determining accuracy degradation at the function level using a combination of interval analysis and derivative techniques. We use the model to analyze a piece of scientific computational software from the field of nuclear engineering. Our results suggest that the Pareto principle does in fact apply for accuracy degradation: 88% of the analyzed functions had less than 2% average relative errors in their output, and error amplification only occurred on 19% of functions. These results imply that tools focused on locating the critical sections of code where accuracy degradation is high could be useful in helping scientific developers understand and improve the accuracy characteristics of their software.

References

[1]
Archimedes. The Works of Archimedes. Cambridge University Press, 1897.
[2]
Claus Bendtsen and Ole Stauning. FADBAD, a flexible C++ package for automatic differentiation - using the forward and backward methods, 1996.
[3]
Hervé Brönnimann, Guillaume Melquiond, and Sylvain Pion. The Boost Interval Arithmetic Library. In Real Numbers and Computers, pages 65--80, Lyon, France, 2003. NSF CAREER Grant CCR-0133599.
[4]
M. G. Bulmer. Principles of statistics. Dover books on advanced mathematics. Dover Publications, 1979.
[5]
James R. Cordy. TXL - A Language for Programming Language Tools and Applications. Electronic Notes in Theoretical Computer Science, 110:3--31, 2004. Proceedings of the Fourth Workshop on Language Descriptions, Tools, and Applications (LDTA 2004).
[6]
Patrick Cousot, Radhia Cousot, Jerôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. The ASTRÉE analyzer. In Programming Languages and Systems, Proceedings of the 14th European Symposium on Programming, volume 3444 of Lecture Notes in Computer Science, pages 21--30. Springer, 2005.
[7]
Florent de Dinechin, Christoph Quirin Lauter, and Guillaume Melquiond. Assisted verification of elementary functions using Gappa. In Proceedings of the 2006 ACM symposium on Applied computing, SAC '06, pages 1318--1322, New York, NY, USA, 2006. ACM.
[8]
Luiz Henrique de Figueiredo and Jorge Stolfi. Affine arithmetic: Concepts and applications. Numerical Algorithms, 37:147--158, 2004. 10.1023/B:NUMA.0000049462.70970.b6.
[9]
Claire F. Fang, Rob A. Rutenbar, Markus Püschel, and Tsuhan Chen. Toward Efficient Static Analysis of Finite-Precision Effects in DSP Applications via Affine Arithmetic Modeling. Design Automation Conference, 0:496, 2003.
[10]
Laurent Fousse, Guillaume Hanrot, Vincent Lefèvre, Patrick Pélissier, and Paul Zimmermann. Mpfr: A multiple-precision binary floating-point library with correct rounding. ACM Trans. Math. Softw., 33, June 2007.
[11]
S. Ghahramani. Fundamentals of probability. Prentice Hall, 2000.
[12]
Susan L. Graham, Peter B. Kessler, and Marshall K. Mckusick. Gprof: A call graph execution profiler. SIGPLAN Not., 17:120--126, June 1982.
[13]
Diane Kelly, Spencer Smith, and Nicholas Meng. "Software Engineering for Science", summary of CASCON workshops, November 2009 and November 2010 (to be published). IEEE CiSE, Sept/Oct 2011.
[14]
Seppo Linnainmaa. Error linearization as an effective tool for experimental analysis of the numerical stability of algorithms. BIT Numerical Mathematics, 23:346--359, 1983. 10.1007/BF01934463.
[15]
David Monniaux. The pitfalls of verifying floating-point computations. ACM Trans. Program. Lang. Syst., 30(3), 2008.
[16]
Ramon E. Moore. Interval Analysis. Prentice-Hall Inc., Englewood Cliffs, 1966.
[17]
Arnold Neumaier. Improving interval enclosures, 2009.
[18]
William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P. Flannery. Numerical Recipes 3rd Edition: The Art of Scientific Computing. Cambridge University Press, New York, NY, USA, 3 edition, 2007.
[19]
Sylvie Putot, Eric Goubault, and Matthieu Martel. Static Analysis-Based Validation of Floating-Point Computations. In René Alt, Andreas Frommer, R. Kearfott, and Wolfram Luther, editors, Numerical Software with Result Verification, volume 2991 of Lecture Notes in Computer Science, pages 295--312. Springer Berlin/Heidelberg, 2004.
[20]
Louis B. Rall and George F. Corliss. An introduction to automatic differentiation. In Martin Berz, Christian H. Bischof, George F. Corliss, and Andreas Griewank, editors, Computational Differentiation: Techniques, Applications, and Tools, pages 1--17. SIAM, Philadelphia, PA, 1996.
[21]
H. G. Schaeffer. NASTRAN primer: static and normal modes analysis. Schaeffer Analysis, 1977.
[22]
Josef Stoer and Roland Bulirsch. Introduction to Numerical Analysis. Springer-Vertag, 2nd edition, 1992.
[23]
D. Stott Parker, B. Pierce, and P. R. Eggert. Monte Carlo arithmetic: how to gamble with floating point and win. Computing in Science & Engineering, 2(4):58--68, July 2000.
[24]
Jean Vignes. Discrete Stochastic Arithmetic for Validating Results of Numerical Software. Numerical Algorithms, 37(1):377--390, December 2004.
[25]
Mark Weiser. Program slicing. In Proceedings of the 5th international conference on Software engineering, ICSE '81, pages 439--449, Piscataway, NJ, USA, 1981. IEEE Press.

Cited By

View all
  • (2016)Source Transformation of C++ Codes for Compatibility with Operator OverloadingProcedia Computer Science10.1016/j.procs.2016.05.47080:C(1485-1496)Online publication date: 1-Jun-2016

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image DL Hosted proceedings
CASCON '11: Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
November 2011
422 pages

Sponsors

  • IBM Canada Ltd. Laboratory Centre for Advanced Studies
  • IBM Canada: IBM Canada

Publisher

IBM Corp.

United States

Publication History

Published: 07 November 2011

Qualifiers

  • Research-article

Conference

CASCON '11
Sponsor:
  • IBM Canada
CASCON '11: Center for Advanced Studies on Collaborative Research
November 7 - 10, 2011
Ontario, Toronto, Canada

Acceptance Rates

Overall Acceptance Rate 24 of 90 submissions, 27%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)0
Reflects downloads up to 20 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2016)Source Transformation of C++ Codes for Compatibility with Operator OverloadingProcedia Computer Science10.1016/j.procs.2016.05.47080:C(1485-1496)Online publication date: 1-Jun-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media