Randomized accuracy-aware program transformations for efficient approximate computations

Despite the fact that approximate computations have come to dominate many areas of computer science, the field of program transformations has focused almost exclusively on traditional semantics-preserving transformations that do not attempt to exploit the opportunity, available in many computations, to acceptably trade off accuracy for benefits such as increased performance and reduced resource consumption. We present a model of computation for approximate computations and an algorithm for optimizing these computations. The algorithm works with two classes of transformations: substitution transformations (which select one of a number of available implementations for a given function, with each implementation offering a different combination of accuracy and resource consumption) and sampling transformations (which randomly discard some of the inputs to a given reduction). The algorithm produces a (1+ε) randomized approximation to the optimal randomized computation (which minimizes resource consumption subject to a probabilistic accuracy specification in the form of a maximum expected error or maximum error variance).

[1]  Sridhar Ramaswamy,et al.  Join synopses for approximate query answering , 1999, SIGMOD '99.

[2]  Martin Rinard,et al.  Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures , 2009 .

[3]  Song Liu,et al.  Flikker: saving DRAM refresh-power through critical data partitioning , 2011, ASPLOS XVI.

[4]  Daniel Minoli,et al.  Wireless Sensor Networks: Technology, Protocols, and Applications , 2007 .

[5]  Surendra Byna,et al.  Exploiting the forgiving nature of applications for scalable parallel execution , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[6]  Ying Hu,et al.  Supporting Time-Constrained SQL Queries in Oracle , 2007, VLDB.

[7]  Diana Marculescu,et al.  Deviation-tolerant computation in concurrent failure-prone hardware , 2008 .

[8]  Rajeev Motwani,et al.  Randomized Algorithms , 1995, SIGA.

[9]  Martin C. Rinard Probabilistic accuracy bounds for fault-tolerant computations that discard tasks , 2006, ICS '06.

[10]  Sumit Gulwani,et al.  Proving programs robust , 2011, ESEC/FSE '11.

[11]  Wen-Chi Hou,et al.  Processing aggregate relational queries with hard time constraints , 1989, SIGMOD '89.

[12]  Dan Grossman,et al.  EnerJ: approximate data types for safe and general low-power computation , 2011, PLDI '11.

[13]  Martin C. Rinard Using early phase termination to eliminate load imbalances at barrier synchronization points , 2007, OOPSLA.

[14]  Martin Rinard,et al.  Probabilistic and Statistical Analysis of Perforated Patterns , 2011 .

[15]  Anand Raghunathan,et al.  Best-effort parallel execution framework for Recognition and mining applications , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[16]  Rupak Majumdar,et al.  Systematic testing for control applications , 2010, Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE 2010).

[17]  Henry Hoffmann,et al.  Dynamic knobs for responsive power-aware computing , 2011, ASPLOS XVI.

[18]  J. Flinn,et al.  Energy-aware adaptation for mobile applications , 1999, SOSP.

[19]  Swarat Chaudhuri,et al.  Smoothing a Program Soundly and Robustly , 2011, CAV.

[20]  Ronitt Rubinfeld,et al.  Sublinear Time Algorithms , 2011, SIAM J. Discret. Math..

[21]  Henry Hoffmann,et al.  SEEC: A General and Extensible Framework for Self-Aware Computing , 2011 .

[22]  Benjamin C. Pierce,et al.  Distance makes the types grow stronger: a calculus for differential privacy , 2010, ICFP '10.

[23]  Helen J. Wang,et al.  Online aggregation , 1997, SIGMOD '97.

[24]  Woongki Baek,et al.  Green: a framework for supporting energy-conscious programming using controlled approximation , 2010, PLDI '10.

[25]  Christoforos E. Kozyrakis,et al.  Understanding sources of inefficiency in general-purpose chips , 2010, ISCA.

[26]  Rupak Majumdar,et al.  Symbolic Robustness Analysis , 2009, 2009 30th IEEE Real-Time Systems Symposium.

[27]  Alan Edelman,et al.  PetaBricks: a language and compiler for algorithmic choice , 2009, PLDI '09.

[28]  Christopher Ré,et al.  Probabilistic databases , 2011, SIGA.

[29]  Swarat Chaudhuri,et al.  Smooth interpretation , 2010, PLDI '10.

[30]  Mark D. Corner,et al.  Eon: a language and runtime system for perpetual systems , 2007, SenSys '07.

[31]  Daniel M. Roy,et al.  Probabilistically Accurate Program Transformations , 2011, SAS.

[32]  Henry Hoffmann,et al.  Quality of service profiling , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[33]  Henry Hoffmann,et al.  Managing performance vs. accuracy trade-offs with loop perforation , 2011, ESEC/FSE '11.

[34]  Lingamneni Avinash,et al.  Highly energy and performance efficient embedded computing through approximately correct arithmetic: a mathematical foundation and preliminary experimental validation , 2008, CASES '08.

[35]  Sumit Gulwani,et al.  Continuity analysis of programs , 2010, POPL '10.