Skip to main content

PEPFlow: A framework for Performance Estimation Problem (PEP) Workflow

Project description

PEPflow logo PEPFlow: Performance
Estimation Problem Workflow

CI License Pypi

PEPFlow builds on the Performance Estimation Problem (PEP) framework, a powerful approach for analyzing the convergence of optimization algorithms. PEP formulates performance guarantees of an algorithm into tractable optimization problems and helps provide analytical proofs of convergence. PEPFlow streamlines the entire PEP workflow:

  1. Express the algorithm in a mathematical-like syntax
  2. Formulate Primal/Dual PEP
  3. Numerically verify convergence rate
  4. Manipulate Primal/Dual PEP via interactive dashboard
  5. Find analytical proofs using PEPFlow and SymPy symbolic engine jointly
  6. Verify analytical proofs using PEPFlow and SymPy symbolic engine jointly

PEPFlow offers the following key features for building a systematic and interactive workflow

  • Automated process for setting up and solving Primal/Dual PEPs;
  • Interactive dashboard to explore and search exact relaxations of Primal PEPs;
  • Interactive dashboard to numerically verify dual variable values of Dual PEPs;
  • Direct access to key mathematical objects for deriving and verifying analytical proofs in symbols.

Development Guide

We use uv to manage the packages and python environments. To start

uv sync; source .venv/bin/activate;

In windows, use .venv\Scripts\activate instead.

Lint & Testing

We use ruff to do the format and lint and isort to do the import ordering.

ruff format;
ruff check .;
isort .;

We use pytest framework to do the test. To run all unit tests, run the following command:

pytest -s -vv pepflow

We have a convenient script to above

scripts/check.sh [format|lint|typecheck|test]

See the script for the options.

Build doc website

Install the required library (one-time) and pandoc in order to build ipynb.

uv pip install -r docs/requirements.txt

To build the website, run

scripts/build_doc.sh [--serve-only]

The argument --serve-only is optional for hosting the website locally.

Pre-Release Notice

This library is still in the pre-alpha phase. We are releasing the code early due to ongoing disputes. On November 11, an email was sent to the PEPFlow team as well as a group of researchers, accusing plagiarism and stating no citation of previous work. Credit and context are provided in our workshop paper submitted in August 2025, which will soon be released on OpenReview. See this original paragraph in the following screenshot:

screenshot

While we have complied with the citation request, we find the ungrounded accusation of plagiarism directed at a pre-alpha release to be unwarranted and not in the spirit of open, collaborative research.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pepflow-0.1.8-py3-none-any.whl (90.6 kB view details)

Uploaded Python 3

File details

Details for the file pepflow-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: pepflow-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 90.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.18

File hashes

Hashes for pepflow-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7c2c580549d007c593f4d1ff77d16b9ecaeeb6949040c8a1cb20defb55f1ddd5
MD5 c0905547612d782490acc5bd99ff3f05
BLAKE2b-256 481936cb8d52222b047bcd05dcf4840e5cfabdcadf9811d56aa75a7c293c7011

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page