Probabilistic Programs - A Natural Model for Approximate Computations

Approximate computing is a computational paradigm in which the requirement of having fully deterministic and accurate arithmetical operations is dropped [4]. For diverse practical problem (e.g. video decoding or image compression) by relaxing this requirement one can obtain considerably more efficient algorithms—be it in terms of execution time, memory usage, energy consumption, etc. When moving from accurate to approximate computations, a natural question arises: How accurate is the result of the approximate computation compared to the result of the accurate one? Any attempt to seriously answer this question raises the need for an appropriate formal model of approximate computations. Probabilistic programs extend conventional programs with probabilistic choices or random assignments and indeed provide a well–studied and suitable model for this purpose. Their syntax and semantics [5, 6, 3, 2] are flexible and expressive enough to model many aspects of approximate computing quite naturally. A recent approach for dealing with quantitative reliability analysis of approximate computations brought up the concept of unreliable operators [1]. In this approach instead of performing e.g. the accurate assignment x = x + y, one performs the approximate assignment x = x +. y, the latter being specified through a reliability value 0 ≤ e ≤ 1. Then with probability 1−e the approximate assignment yields the expected effect, while with probability e it produces an arbitrary—and thus erroneous—effect. This model, however, is unable to quantify how much the erroneous effect departs from the accurate one. Our goal is to take this reliability analysis a step further by employing a more expressive language of probabilistic programs: the so-called probabilistic guarded command language (pGCL) [6]—an extension of Dijkstra’s guarded command language with probabilistic choices. By employing this language besides representing the probability with wich erroneous computation occurs, we can provide more stochastic information such as the most likely effect or the expected (i.e. average) effect of the erroneous computations. For instance we can model an approximate assignment as a pGCL program

[1]  Annabelle McIver,et al.  Abstraction, Refinement and Proof for Probabilistic Systems , 2004, Monographs in Computer Science.

[2]  Dexter Kozen,et al.  Semantics of probabilistic programs , 1979, 20th Annual Symposium on Foundations of Computer Science (sfcs 1979).

[3]  Annabelle McIver,et al.  Conditioning in Probabilistic Programming , 2015, MFPS.

[4]  Annabelle McIver,et al.  Operational versus weakest pre-expectation semantics for the probabilistic guarded command language , 2014, Perform. Evaluation.

[5]  Martin C. Rinard,et al.  Verifying quantitative reliability for programs that execute on unreliable hardware , 2013, OOPSLA.

[6]  Jie Han,et al.  Approximate computing: An emerging paradigm for energy-efficient design , 2013, 2013 18th IEEE European Test Symposium (ETS).