A Compilation Target for Probabilistic Programming Languages
By Brooks Paige, Frank D. Wood. 2014
80 citations recorded by the source corpus.
Forward inference techniques such as sequential Monte Carlo and particle Markov chain Monte Carlo for probabilistic programming can be implemented in any programming language by creative use of standardized operating system functionality including processes, forking, mutexes, and shared memory. Exploiting this we have defined, developed, and tested a probabilistic programming language intermediate representation language we call probabilistic C, which itself can be compiled to machine code by standard compilers and linked to operating system libraries yielding an efficient, scalable, portable probabilistic programming compilation target. This opens up a new hardware and systems research path for optimizing probabilistic programming systems.
Subfields: Artificial Intelligence, Probabilistic & Bayesian Methods
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Yura N. Perov
- Frank D. Wood
- Zoubin Ghahramani
- Hongseok Yang
- Brooks Paige
- Jan-Willem van de Meent
- David Tolpin
- Yee Whye Teh
In Probabilistic & Bayesian Methods
- Frank D. Wood
- Yura N. Perov
- Zoubin Ghahramani
- Hongseok Yang
- Brooks Paige
- Jan-Willem van de Meent
- David Tolpin
- Vikash K. Mansinghka
Citations in the corpus
- An Introduction to Probabilistic Programming (2018, methodology): “An example of this is probabilistic C (Paige and Wood, 2014), which literally uses the system call fork to implement forking.”
- Design and Implementation of Probabilistic Programming Language Anglican (2016, background): “32 – 33] provides a comparison of Anglican to an older, interpreted version of Anglican [31], and Probabilistic Scheme [14] on a rather complicated inference task of program synthesis.”
- Computing functions of random variables via reproducing kernel Hilbert space representations (2015, neutral): “A variety of probabilistic programming languages has been proposed (Wood et al. 2014; Paige and Wood 2014; Cassel 2014).”
- Picture: A probabilistic programming language for scene perception (2015, neutral): “…of random variables as in equation 1) can then be accepted with probability: min 1 , P (cid:15) ( ν ( I D ) − ν ( I (cid:48) R )) P ( S (cid:48) ρ ) P ( X (cid:48) ρ ) q ( S (cid:48) ,X (cid:48) ) ( S,X ) P (cid:15) ( ν ( I D ) − ν ( I R )) P ( S ρ ) P ( X ρ ) q ( S,X ) ( S (cid:48) ,X (cid:48) ) .”
- MXFusion: A Modular Deep Probabilistic Programming Library (2018, background): “Probabilistic programming language (PPL, Lunn et al., 2000; Pfeffer, 2001; Goodman et al., 2008; Pfeffer, 2009; Murray, 2013; Paige & Wood, 2014; Minka et al., 2014; Carpenter et al., 2017; Ge et al., 2018) is a similar domain specific programming language that aims at describing probabilistic…”
- Semantics for probabilistic programming: higher-order functions, continuous distributions, and soft constraints (2016, unknown): “This increases efficiency by avoiding too many program executions with low scores [24, Algorithm 1].”
- Asynchronous Anytime Sequential Monte Carlo (2014, methodology): “We are particularly motivated by the SMC-based probabilistic programming systems that have recently appeared in the literature [13, 11].”
- Particle Gibbs with Ancestor Sampling for Probabilistic Programs (2015, background): “, 2014], and Probabilistic C [Paige and Wood, 2014] do not impose such restrictions, which makes the design of generalpurpose inference methods more difficult.”
- Turing: A Language for Flexible Probabilistic Inference (2018, background): “…[Goodman et al., 2008, Wood et al., 2014, Lunn et al., 2000, Minka et al., 2014, Stan Development Team, 2014, Murray, 2013, Pfeffer, 2001, 2009, Paige and Wood, 2014, Murray et al., 2017] aim to fill this gap by providing a very flexible framework for defining probabilistic models and…”
- Delayed Sampling and Automatic Rao-Blackwellization of Probabilistic Programs (2017, methodology): “…Carlo (SMC) inference algorithms [4], extending an arc of research that includes probabilistic programming languages (PPLs) such as Venture [14], Anglican [26], Probabilistic C [18], WebPPL [8], Fi-garo [20], and Turing [7], as well as similarly-motivated software such as LibBi [16] and BiiPS [25].”
- MultiVerse: Causal Reasoning using Importance Sampling in Probabilistic Programming (2019, background): “Also note that for efficient memory usage, “copy-on-write” strategies (Wikipedia, 2019; Paige and Wood, 2014) can be applied when making intervention/prediction on parts of the”
- Applications of Probabilistic Programming (Master's thesis, 2015) (2016, methodology): “Another related work worth mentioning is “Probabilistic C” (Paige and Wood, 2014), where authors present a C library that allows sequential Monte Carlo and Particle Gibbs inference in any C and C++ program with just two added C functions, OBSERVE and PREDICT, to condition executions and get particle”
- Commutative Semantics for Probabilistic Programming (2017, background): “In many situations, particularly in Sequential Monte Carlo simulations, it is helpful to freeze a simulation and resample from a histogram that has been built (e.g. [31]).”