- SDPB
- Installation and Usage
- Experimental branches
- Test problems
- Front ends
- Attribution
- Acknowledgements
- Works Using SDPB
SDPB is an open-source, arbitrary-precision, parallelized semidefinite program solver, designed for the conformal bootstrap. It solves the following problem:
Let
- Given:
- A collection of
$J\times (N+1)$ polynomial matrices$M_{nj}(x) \in S^{m_j\times m_j}[x]$ , ($j=1,\dots,J$ and$n=0,\dots,N$ ), - A constant
$b_0 \in \mathbb{R}$ , - A vector
$b\in \mathbb{R}^N$ ,
- A collection of
- Maximize
$b_0 + b\cdot y$ over decision variables$y\in \mathbb{R}^N$ - Such that:
$M_{0j}(x) + \Sigma_{n=1}^N y_n M_{nj}(x) \succeq 0$ for all$x\geq 0$ and$j=1,\dots,J$ .
Here,
For more information, see A Semidefinite Program Solver for the Conformal Bootstrap and the manual.
SDPB can also solve general semidefinite programs in SDPA format, see Solving SDPA problems.
Authors: David Simmons-Duffin (dsd@caltech.edu), Walter Landry (wlandry@caltech.edu), Vasiliy Dommes (vasdommes@gmail.com)
The easiest way to run SDPB on a Windows or Mac machine is to follow the Docker instructions. For Linux and HPC centers, the Singularity instructions will probably work better. If you want to build it yourself, there are detailed instructions in Install.md.
Usage instructions are detailed in Usage.md.
Some new features (faster CPU paths, new options of sdpb, pmp2sdp and spectrum, and a GPU backend) are
offered as pull requests before they are reviewed and merged. docs/Experimental.md lists
them, with their review status and the people to credit if you use them, and says how to build and combine them.
For work on SDPB's performance, there is a ladder of optimization test problems of increasing size,
sdpb-test-01 to sdpb-test-08, from small problems that solve on one node to multi-node and multi-GPU ones.
Each comes with its SDP, its PMP (or a recipe to make it), a reference solution or reference timings, a README
and a check script. They are
here;
more rungs are being added, among them SDPA-format problems (.dat-s files, which sdpb reads directly; see
Solving SDPA problems). Measured timings on them are collected in
docs/Performance.md.
Several front ends for SDPB are available:
- PyCFTBoot (Python) by Connor Behan (arXiv:1602.02810, INSPIRE)
- cboot (Python) by Tomoki Ohtsuki (arXiv:1602.07295, INSPIRE)
- virasoro_blocks (Python) by David Poland (arXiv:2610.39106, INSPIRE), for the 2d bootstrap
- simpleboot (Mathematica) by Ning Su
- autoboot (Mathematica) by Mocho Go and Yuji Tachikawa (arXiv:1903.10522, INSPIRE), which generates bootstrap equations for cboot
- qboot (C++) by Mocho Go (arXiv:2006.04173, INSPIRE)
- sdpb-haskell (Haskell) by David Simmons-Duffin
If you use SDPB in work that results in publication, consider citing
- D. Simmons-Duffin, A Semidefinite Program Solver for the Conformal Bootstrap, JHEP 1506, 174 (2015) arXiv:1502.02033, INSPIRE.
- W. Landry and D. Simmons-Duffin, Scaling the semidefinite program solver SDPB arXiv:1909.09745, INSPIRE.
Depending on how SDPB is used, the following might also be relevant:
- First use of semidefinite programming in the bootstrap:
- D. Poland, D. Simmons-Duffin and A. Vichi, Carving Out the Space of 4D CFTs, JHEP 1205, 110 (2012) arXiv:1109.5176, INSPIRE.
- Arbitrary spacetime dimension:
- F. Kos, D. Poland and D. Simmons-Duffin, Bootstrapping the O(N) Vector Models, JHEP 1406, 091 (2014) arXiv:1307.6856, INSPIRE.
- Arbitrary systems of correlation functions:
- F. Kos, D. Poland and D. Simmons-Duffin, Bootstrapping Mixed Correlators in the 3D Ising Model, JHEP 1411, 109 (2014) arXiv:1406.4858, INSPIRE.
- Optimal interpolation, for better performance and condition numbers:
- C.-H. Chang, V. Dommes, P. Kravchuk, D. Poland and D. Simmons-Duffin, Accurate bootstrap bounds from optimal interpolation, JHEP 2605, 275 (2026) arXiv:2509.14307, INSPIRE.
- Linear and quadratic variations of the objective function:
- M. Reehorst, S. Rychkov, D. Simmons-Duffin, B. Sirois, N. Su and B. van Rees, Navigator Function for the Conformal Bootstrap, SciPost Phys. 11, 072 (2021) arXiv:2104.09518, INSPIRE.
- Original use:
- Z. Komargodski and D. Simmons-Duffin, The Random-Bond Ising Model in 2.01 and 3 Dimensions, J. Phys. A 50, 154001 (2017) arXiv:1603.04444, INSPIRE.
- How it works:
- D. Simmons-Duffin, The Lightcone Bootstrap and the Spectrum of the 3d Ising CFT, JHEP 1703, 086 (2017) arXiv:1612.08471, INSPIRE.
-
Versions 2 and 3 of SDPB were made possible by support from the Simons Collaboration on the Nonperturbative Bootstrap.
-
The design of SDPB was partially based on the solvers SDPA and SDPA-GMP, which were essential sources of inspiration and examples.
-
Thanks to Filip Kos, David Poland, and Alessandro Vichi for collaboration in developing semidefinite programming methods for the conformal bootstrap and assistance testing SDPB.
-
Thanks to Amir Ali Ahmadi, Hande Benson, Pablo Parrilo, and Robert Vanderbei for advice and discussions about semidefinite programming.
-
Thanks also to Noah Stein, who first suggested the idea of semidefinite programming to me in this Math Overflow question.
Here is a list of papers citing SDPB.