This repository contains code for benchmarking LP/MILP solvers, and an interactive website for analyzing the results.
Before you begin, make sure your development environment includes Python.
Preferred use:
We use Python virtual environments to manage the dependencies for each component of this project. This is how to create a virtual environment:
python -m venv venv
This is how to activate one:
.\venv\Scripts\activate
source venv/bin/activate
And this is how to install the required dependencies once a venv
is activated:
sudo apt install glpk-utils libglpk-dev # GLPK solver cannot be installed purely with pip
pip install -r runner/requirements.txt
pip install -r website/requirements.txt
We use the ruff code linter and formatter, and GitHub Actions runs various pre-commit checks to ensure code and files are clean.
You can install a git pre-commit that will ensure that your changes are formatted and no lint issues are detected before creating new commits:
pip install pre-commit
pre-commit install
If you want to skip these pre-commit steps for a particular commit, you can run:
git commit --no-verify
Remember to activate the appropriate virtual environment before running the runner or the website.
Run Benchmark Runner
python runner/run_benchmarks.py
The app will save the runtime and memory consumption into a CSV file.
Run Website
streamlit run website/app.py
The website will be running on: http://localhost:8501