SDPB(1)
π SDPB(1) π
okay so bestie, welcome to the User Commands section of the manual, and today's main character is sdpb β the Semidefinite program solver. pull up a chair, grab a strawberry π, and let's get into it.
β¨ NAME β¨
sdpb β Semidefinite program solver
π¦ SYNOPSIS π¦
sdpb [OPTIONS] [SOLVER PARAMETERS]
πΈ DESCRIPTION πΈ
ERROR: the option '--sdpFile' is required but missing
no literally, that's what it says. it's giving "you forgot the one thing that matters" π
π Basic options:
-h,--helpβ Show this helpful message. (iconic behaviour, honestly)-s,--sdpFilearg β SDP data file in XML format. (this is the one you cannot skip, bestie)-p,--paramFilearg β Any parameter can optionally be set via this file inkey=valueformat. Command line arguments override values in the parameter file. (cli stays winning π)-o,--outFilearg β The optimal solution is saved to this file in Mathematica format. Defaults tosdpFilewith'.out'extension.-c,--checkpointFilearg β Checkpoints are saved to this file everycheckpointInterval. Defaults tosdpFilewith'.ck'extension.
π Solver parameters:
--precisionarg (=400) β Precision in binary digits. GMP will round up to the nearest multiple of 64 (or 32 on older systems).--maxThreadsarg (=4) β Maximum number of threads to use for parallel calculation. (parallelism slay)--checkpointIntervalarg (=3600) β Save checkpoints tocheckpointFileeverycheckpointIntervalseconds.--noFinalCheckpointβ Don't save a final checkpoint after terminating (useful when debugging).--findPrimalFeasibleβ Terminate once a primal feasible solution is found.--findDualFeasibleβ Terminate once a dual feasible solution is found.--detectPrimalFeasibleJumpβ Terminate if a primal-step of 1 is taken. This often indicates that a primal feasible solution would be found if the precision were high enough. Try increasing eitherprimalErrorThresholdorprecisionand run from the latest checkpoint.--detectDualFeasibleJumpβ Terminate if a dual-step of 1 is taken. This often indicates that a dual feasible solution would be found if the precision were high enough. Try increasing eitherdualErrorThresholdorprecisionand run from the latest checkpoint.--maxIterationsarg (=500) β Maximum number of iterations to run the solver.--maxRuntimearg (=86400) β Maximum amount of time to run the solver in seconds.--dualityGapThresholdarg (=1e-30) β Threshold for duality gap (roughly the difference in primal and dual objective) at which the solution is considered optimal. Corresponds to SDPA'sepsilonStar.--primalErrorThresholdarg (=1e-30) β Threshold for feasibility of the primal problem. Corresponds to SDPA'sepsilonBar.--dualErrorThresholdarg (=1e-30) β Threshold for feasibility of the dual problem. Corresponds to SDPA'sepsilonBar.--initialMatrixScalePrimalarg (=1e+20) β The primal matrixXbegins atinitialMatrixScalePrimaltimes the identity matrix. Corresponds to SDPA'slambdaStar.--initialMatrixScaleDualarg (=1e+20) β The dual matrixYbegins atinitialMatrixScaleDualtimes the identity matrix. Corresponds to SDPA'slambdaStar.--feasibleCenteringParameterarg (=0.1) β Shrink the complementarityX Yby this factor when the primal and dual problems are feasible. Corresponds to SDPA'sbetaStar.--infeasibleCenteringParameterarg (=0.3) β Shrink the complementarityX Yby this factor when either the primal or dual problems are infeasible. Corresponds to SDPA'sbetaBar.--stepLengthReductionarg (=0.7) β Shrink each newton step by this factor (smaller means slower, more stable convergence). Corresponds to SDPA'sgammaStar.--choleskyStabilizeThresholdarg (=1e-40) β Adds stabilizing terms to the cholesky decomposition of the schur complement matrix for diagonal entries which are smaller than this threshold times the geometric mean of other diagonal entries. Somewhat highercholeskyStabilizeThresholdcan improve numerical stability but if the threshold is large enough that a high proportion of eigenvalues are being stabilized, the computation will slow substantially. (stability vs speed, the eternal vibe check βοΈ)--maxComplementarityarg (=1e+100) β Terminate if the complementaritymu = Tr(X Y)/dim(X)exceeds this value.
π₯ EXAMPLES π₯
The example files are contained in the package sdpb-doc and can be found at /usr/share/doc/sdpb-doc/examples/.
The input format for SDPB is XML-based and described in the manual. The Mathematica file mathematica/SDPB.m includes code to export semidefinite programs in this format, along with some examples. An example input file test.xml is included as well.
Two python wrappers for SDPB are also available:
- PyCFTBoot by Connor Behan (
arXiv:1602.02810) - cboot by Tomoki Ohtsuki (
arXiv:1602.07295).
wrappers?? we love a good wrapper π«Ά
π SEE ALSO π
The SDPB manual and the README file are contained in the package sdpb-doc and can be found at /usr/share/doc/sdpb-doc/.
The full documentation for sdpb is maintained as a Texinfo manual. If the info and sdpb programs are properly installed at your site, the command
info sdpb
should give you access to the complete manual. (go read it, iykyk π)
π AUTHOR π
This manpage was written by Nilesh Patra for the Debian distribution and can be used for any other usage of the program.
and that's the whole thing bestie, no cap. β¨ This is sdpb version 1.0, dated February 2021 β take care of her, she's iconic. ππ¦π
π¦ where this page comes from
- debian bookworm: sdpb 1.0-4+b1 Β· MIT
- debian trixie: sdpb 1.0-4+b4 Β· MIT
- ubuntu jammy: sdpb 1.0-4build1 Β· MIT
- ubuntu noble: sdpb 1.0-4ubuntu1 Β· MIT
- ubuntu questing: sdpb 1.0-4ubuntu3
- ubuntu resolute: sdpb 1.0-5 Β· MIT
- ubuntu stonking: sdpb 1.0-5 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms