Repository navigation
Faster solves of small semidefinite programs, and independent solves in parallel.
Faster solver on one MPI rank
SDPB (fork branch python-api, fc8310ac) now runs its dense linear algebra on local matrices when a solve runs on one rank, instead of through Elemental's distributed kernels, with fewer temporaries, symmetric products computed in one triangle, and its internal timers off. On many small polynomial matrix programs (768 bits, blocks of 3x3 to 13x13) a solve takes about 0.68 of the time of 0.3.0. Iteration counts are unchanged and results agree with 0.3.0 to about 1e-200 relative.
fast_step_length
SolverOptions(fast_step_length=True) computes the step lengths from a double-precision smallest eigenvalue, verified in full precision (with the exact computation as fallback). On such problems it roughly halves the time per iteration with identical iteration counts. Off by default.
SolverPool and solve_many
Independent solves can run in parallel worker processes (started with spawn, one BLAS thread each); a pooled solve gives the same result as pmp.solve(). Queued and running solves can be cancelled, and a worker that dies is replaced. See "Many solves in parallel" in the guide.
Install
pip install sdpb-python --find-links https://github.com/YPWang0818/sdpb-python/releases/expanded_assets/v0.4.0
Linux x86_64, Python 3.10 to 3.13.