Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2041552.2041576guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Probabilistically accurate program transformations

Published: 14 September 2011 Publication History

Abstract

The standard approach to program transformation involves the use of discrete logical reasoning to prove that the transformation does not change the observable semantics of the program. We propose a new approach that, in contrast, uses probabilistic reasoning to justify the application of transformations that may change, within probabilistic accuracy bounds, the result that the program produces.
Our new approach produces probabilistic guarantees of the form P(|D| ≥ B) ≤ ε, ε ∈ (0, 1), where D is the difference between the results that the transformed and original programs produce, B is an acceptability bound on the absolute value of D, and ε is the maximum acceptable probability of observing large |D|. We show how to use our approach to justify the application of loop perforation (which transforms loops to execute fewer iterations) to a set of computational patterns.

References

[1]
Ansel, J., Chan, C., Wong, Y., Olszewski, M., Zhao, Q., Edelman, A., Amarasinghe, S.: Petabricks: A language and compiler for algorithmic choice. In: PLDI 2010 (2010).
[2]
Arnold, B., Balakrishnan, N., Nagaraja, H.: A first course in order statistics. Society for Industrial Mathematics, Philadelphia (2008).
[3]
Baek, W., Chilimbi, T.: Green: A framework for supporting energy-conscious programming using controlled approximation. In: PLDI 2010 (2010).
[4]
Bienia, C., Kumar, S., Singh, J.P., Li, K.: The PARSEC benchmark suite: Characterization and architectural implications. In: PACT 2008 (2008).
[5]
Carbin, M., Rinard, M.: Automatically Identifying Critical Input Regions and Code in Applications. In: ISSTA 2010 (2010).
[6]
Chaudhuri, S., Gulwani, S., Lublinerman, R.: Continuity analysis of programs. In: POPL 2010 (2010).
[7]
Chaudhuri, S., Gulwani, S., Lublinerman, R., Navidpour, S.: Proving Programs Robust. In: FSE 2011 (2011).
[8]
Chaudhuri, S., Solar-Lezama, A.: Smooth interpretation. In: PLDI 2010 (2010).
[9]
Cochran, W.G.: Sampling techniques. John Wiley & Sons, Chichester (1977).
[10]
Di Pierro, A., Hankin, C., Wiklicky, H.: A systematic approach to probabilistic pointer analysis. In: ASPLAS 2007 (2007).
[11]
Di Pierro, A., Hankin, C., Wiklicky, H.: Probabilistic λ-calculus and quantitative program analysis. Journal of Logic and Computation (2005).
[12]
Di Pierro, A., Wiklicky, H.: Concurrent constraint programming: Towards probabilistic abstract interpretation. In: PPDP 2000 (2000).
[13]
Goodman, N., Mansinghka, V., Roy, D., Bonawitz, K., Tenenbaum, J.: Church: a language for generative models. In: UAI 2008 (2008).
[14]
Gulwani, S., Necula, G.C.: Precise interprocedural analysis using random interpretation. In: POPL 2005 (2005).
[15]
Gulwani, S., Zuleger, F.: The reachability-bound problem. In: PLDI 2010 (2010).
[16]
Hall, M., Murphy, B., Amarasinghe, S., Liao, S., Lam, M.: Interprocedural analysis for parallelization. In: Languages and Compilers for Parallel Computing (1996).
[17]
Hoffman, H., Sidiroglou, S., Carbin, M., Misailovic, S., Agarwal, A., Rinard, M.: Dynamic knobs for power-aware computing. In: ASPLOS 2011 (2011).
[18]
Hoffmann, H., Misailovic, S., Sidiroglou, S., Agarwal, A., Rinard, M.: Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures. Technical Report MIT-CSAIL-TR-2009-042 (2009).
[19]
Hurd, J.: A formal approach to probabilistic termination. In: Carreño, V.A., Muñoz, C.A., Tahar, S. (eds.) TPHOLs 2002. LNCS, vol. 2410, p. 230. Springer, Heidelberg (2002).
[20]
Kennedy, K., Allen, J.R.: Optimizing compilers for modern architectures: a dependence-based approach. Morgan Kaufmann, San Francisco (2002).
[21]
Klir, G.: Uncertainty and information. John Wiley & Sons, Chichester (2006).
[22]
Kozen, D.: Semantics of probabilistic programs. Journal of Computer and System Sciences (1981).
[23]
Kwiatkowska, M., Norman, G., Parker, D.: Prism: Probabilistic symbolic model checker. In: Computer Performance Evaluation: Modelling Techniques and Tools (2002).
[24]
Misailovic, S., Roy, D., Rinard, M.: Probabilistic and Statistical Analysis of Perforated Patterns. Technical Report MIT-CSAIL-TR-2011-003, MIT (2011).
[25]
Misailovic, S., Sidiroglou, S., Hoffmann, H., Rinard, M.: Quality of service profiling. In: ICSE 2010 (2010).
[26]
Monniaux, D.: Abstract interpretation of probabilistic semantics. In: SAS 2000. LNCS, vol. 1824, pp. 322-340. Springer, Heidelberg (2000).
[27]
Monniaux, D.: An abstract monte-carlo method for the analysis of probabilistic programs. In: POPL 2001 (2001).
[28]
Moore, R.E.: Interval analysis. Prentice-Hall, Englewood Cliffs (1966).
[29]
Morgan, C., McIver, A.: pGCL: formal reasoning for random algorithms. South African Computer Journal 22 (1999).
[30]
Park, S., Pfenning, F., Thrun, S.: A probabilistic language based upon sampling functions. In: POPL 2005 (2005).
[31]
Ramsey, N., Pfeffer, A.: Stochastic lambda calculus and monads of probability distributions. In: POPL 2002 (2002).
[32]
Reed, J., Pierce, B.C.: Distance makes the types grow stronger: a calculus for differential privacy. In: ICFP 2010 (2010).
[33]
Rinard, M.: Probabilistic accuracy bounds for fault-tolerant computations that discard tasks. In: ICS 2006 (2006).
[34]
Rinard, M.: Using early phase termination to eliminate load imbalances at barrier synchronization points. In: OOPSLA 2007 (2007).
[35]
Rinard, M., Hoffmann, H., Misailovic, S., Sidiroglou, S.: Patterns and statistical analysis for understanding reduced resource computing. In: Onward! 2010 (2010).
[36]
Saheb-Djahromi, N.: Probabilistic LCF. In: MFCS 1978 (1978).
[37]
Sampson, A., Dietl, W., Fortuna, E., Gnanapragasam, D., Ceze, L., Grossman, D.: Enerj: Approximate data types for safe and general low-power computation. In: PLDI 2011 (2011).
[38]
Sidiroglou, S., Misailovic, S., Hoffmann, H., Rinard, M.: Managing Performance vs. Accuracy Trade-offs With Loop Perforation. In: FSE 2011 (2011).
[39]
Smith, M.: Probabilistic abstract interpretation of imperative programs using truncated normal distributions. Electronic Notes in Theoretical Computer Science (2008).
[40]
Sorber, J., Kostadinov, A., Garber, M., Brennan, M., Corner, M.D., Berger, E.D.: Eon: a language and runtime system for perpetual systems. In: SenSys 2007 (2007).
[41]
Springer, M.: The algebra of random variables. John Wiley & Sons, Chichester (1979).

Cited By

View all
  • (2021)HPACProceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis10.1145/3458817.3476216(1-14)Online publication date: 14-Nov-2021
  • (2018)Leto: verifying application-specific hardware fault tolerance with programmable execution modelsProceedings of the ACM on Programming Languages10.1145/32765332:OOPSLA(1-30)Online publication date: 24-Oct-2018
  • (2018)Uncertainty Propagation in Data Processing SystemsProceedings of the ACM Symposium on Cloud Computing10.1145/3267809.3267833(95-106)Online publication date: 11-Oct-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
SAS'11: Proceedings of the 18th international conference on Static analysis
September 2011
386 pages
ISBN:9783642237010
  • Editor:
  • Eran Yahav

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 14 September 2011

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)HPACProceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis10.1145/3458817.3476216(1-14)Online publication date: 14-Nov-2021
  • (2018)Leto: verifying application-specific hardware fault tolerance with programmable execution modelsProceedings of the ACM on Programming Languages10.1145/32765332:OOPSLA(1-30)Online publication date: 24-Oct-2018
  • (2018)Uncertainty Propagation in Data Processing SystemsProceedings of the ACM Symposium on Cloud Computing10.1145/3267809.3267833(95-106)Online publication date: 11-Oct-2018
  • (2018)SculptorProceedings of the 2018 International Conference on Supercomputing10.1145/3205289.3205317(341-351)Online publication date: 12-Jun-2018
  • (2018)SnaPEAProceedings of the 45th Annual International Symposium on Computer Architecture10.1109/ISCA.2018.00061(662-673)Online publication date: 2-Jun-2018
  • (2017)Coupling proofs are probabilistic product programsACM SIGPLAN Notices10.1145/3093333.300989652:1(161-174)Online publication date: 1-Jan-2017
  • (2017)Coupling proofs are probabilistic product programsProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009896(161-174)Online publication date: 1-Jan-2017
  • (2016)Perforated CNNsProceedings of the 30th International Conference on Neural Information Processing Systems10.5555/3157096.3157203(955-963)Online publication date: 5-Dec-2016
  • (2016)Verifying bit-manipulations of floating-pointACM SIGPLAN Notices10.1145/2980983.290810751:6(70-84)Online publication date: 2-Jun-2016
  • (2016)Input responsiveness: using canary inputs to dynamically steer approximationACM SIGPLAN Notices10.1145/2980983.290808751:6(161-176)Online publication date: 2-Jun-2016
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media