Skip to content

Releases: YPWang0818/sdpb-python

sdpb-python 0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 18:50

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.

Preview 0.3.1.dev7 (profiling branch)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Oct 14:39

Preview build of the profiling branch for testing; not a release.

  • sdpb-python 0.3.1.dev7, commit c525803
  • SDPB commit fc8310ac
  • includes the profiling options (profile_path, profile_detail, ...)

Install (replaces any installed sdpb-python):

pip install --pre --upgrade sdpb-python --find-links https://github.com/YPWang0818/sdpb-python/releases/expanded_assets/profiling-latest

To go back, reinstall the release as in the installation guide, adding
--force-reinstall.

sdpb-python 0.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 11:29

Install

pip install sdpb-python --find-links https://github.com/YPWang0818/sdpb-python/releases/expanded_assets/v0.3.0

Wheels for Linux x86_64, CPython 3.10 to 3.13, glibc 2.28 or newer.

Changes since v0.2.1

  • The wheels open no network sockets. The bundled MPICH is now built without a network module. In v0.2.1 and earlier it listened on a random TCP port on all interfaces, and any foreign connection to that port, such as a port scan on a shared server, aborted the running solve with Assertion failed in file .../netmod/tcp/socksm.c.
  • Leaner wheels. SDPB is built with only the libraries the extension uses. The wheels bundle 18 libraries instead of 32 and are 69 MB instead of 75 MB. libarchive, libxml2, OpenSSL, zstd, lz4, bz2, acl and MPSolve are gone.
  • Removed solve_dir and SDPBResult (breaking). solve_dir was the passthrough to SDPB's command line on an sdp/ directory and was the only user of the removed libraries. Build the problem with read_pmp_json or the PMP / LMI classes and call .solve() instead.
  • Building from source needs fewer dependencies: libarchive, libxml2 and MPSolve are no longer required.

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 12 Sep 14:59

Full Changelog: v0.2.0...v0.2.1