PPX is a cross-platform Probabilistic Programming eXecution protocol and API based on flatbuffers. It is intended as an open interoperability protocol between models and inference engines implemented in different probabilistic programming languages. PPX is related to pyprob, a PyTorch-based library for probabilistic programming and inference compilation. See Atılım Güneş Baydin’s keynote talk at ACAT2019.

Find PPX on GitHub

This work led to the following publicatoins:

  • “Efficient Probabilistic Inference in the Quest for Physics Beyond the Standard Model”, arXiv:1807.07706 ) published in NeurIPS2019.

  • “Etalumis: Bringing Probabilistic Programming to Scientific Simulators at Scale”, A. Baydin, L. Shao, W. Bhimji, L. Heinrich, L. Meadows et. al., published in SC19 arXiv:1907.03382 https://dl.acm.org/doi/10.1145/3295500.3356180 (07 Jul 2019)

The Etalumis project was nominated for best paper at SC’19 (SuperComputing) and has been written about here and here.

The PPX protocol and pyprob tool have since been applied to epidemiological studies such as “Hijacking Malaria Simulators with Probabilistic Programming”, arXiv:1905.12432 and are now being applied to COVID19 (see “Planning as inference in epidemiological dynamics models” by Warrington, A., Naderiparizi, S., Weilbach, C., Masrani, V., Harvey, W., Scibior, A., Beronov, B., & Nasseri, A. (2020) arXiv:2003.13221 ).


  • Kyle Cranmer
  • Atılım Güneş Baydin
  • Tuan Anh Le
  • Lukas Heinrich
  • Wahid Bhimji
  • Kyle Cranmer
  • Frank Wood