Skip to main content

polybench

Test PyPI version

Multivariate polynomial arithmetic benchmark tests.

Many scientific and engineering applications utilise multivariate polynomial arithmetic in their algorithms and solutions. Here we provide a set of benchmark tests for often-used operations in multivariate polynomial arithmetic:

  • Greatest common divisor
  • Factorisation

Requirements

You also need at least one or more tools to be benchmarked. They are (in alphabetical order):

Getting started

Clone this repository and try to run the run.sh script:

git clone https://github.com/tueda/polybench.git
cd polybench
./run.sh --all

When starting the script for the first time, it automatically sets up a virtual environment for required Python packages so that it will not dirty your environment. Some of the tools are provided as libraries registered in public package registries, so the first run takes some time to download, compile and link them with test binaries. After testing, a CSV file and comparison plots will be generated.

For practical benchmarking, configuration parameters should be set adequately. See the help message shown by

./run.sh --help

You can also use pip, pipx, Poetry or Docker with this repository. Installation with pip(x) install or poetry install makes a command polybench available, which acts as the run.sh script described above.

pip install polybench
polybench --all
python -m polybench --all  # alternative way to launch
pipx install polybench
polybench --all
git clone https://github.com/tueda/polybench.git
cd polybench
poetry install
poetry run polybench --all
docker build -t polybench:latest https://github.com/tueda/polybench.git
docker run -it --rm polybench:latest
./run.sh --all

Example

platform Linux-5.15.0-84-generic-x86_64-with-glibc2.29
python_version 3.8.10.final.0 (64 bit)
cpu_brand 12th Gen Intel(R) Core(TM) i9-12900
cpu_count 16 (logical: 24)
total_memory 62.6GB
FLINT flint 3.5.0, gcc-11 (GNU) 11.5.0
FORM FORM 5.0.0 (Jan 27 2026, v5.0.0)
Mathematica 14.3.0 for Linux x86 (64-bit) (July 31, 2025)
reFORM 0.1.0-fix-serialize, rustc 1.96.0 (ac68faa20 2026-05-25)
Rings 2.5.8, JVM: 11.0.20.1 (Ubuntu 11.0.20.1+1-post-Ubuntu-0ubuntu120.04)
Singular Singular for x86_64-Linux version 4.4.1 (44100, 64 bit) Jan 2025
Symbolica 2.0.0, rustc 1.96.0 (ac68faa20 2026-05-25)

nontrivial-gcd

nontrivial-factor

Additional benchmark results are available here.

Development

# Initialisation
poetry install
poetry run pre-commit install

# Linting and testing
poetry run pre-commit run --all-files
poetry run pytest

# Linting and testing for Cargo subproject
cd path/to/project
cargo fmt
cargo clippy
cargo test

# Linting and testing for Gradle subproject
cd path/to/project
./gradlew spotlessApply
./gradlew check

# Test run
./run.sh <options>  # for example, --all

# Release a new version
./scripts/make-release.sh <new_version>  # for example, 0.3.0rc1

License

MIT

Metadata

Release files for polybench 0.4.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for polybench 0.4.3
File Size Uploaded
polybench-0.4.3.tar.gz 92.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for polybench 0.4.3
File Interpreter ABI Platform
polybench-0.4.3-py3-none-any.whl Python 3 none any Details

Total release size: 190.9 kB

Release files / polybench-0.4.3.tar.gz

Download URL polybench-0.4.3.tar.gz
Size 92.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1cc92c3adf71f5fcd09b6eef94070902706d50c1cb8e2863191b405baf8c056f
BLAKE2b-256 checksum
How to use checksums
f6ed49630cf80817d1eed1fd2cfab2ded12bfbeb74825b46580477bb10560c31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1020-azure

Release files / polybench-0.4.3-py3-none-any.whl

Download URL polybench-0.4.3-py3-none-any.whl
Size 98.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b291b1b22328cd0cff638d08a77ac61554da1a9a461b79c97fa37ced3b0b13d
BLAKE2b-256 checksum
How to use checksums
7872206468f0419338b9a279eaa8e08fb239604ce46ce11faf7e87e9065c7525
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1020-azure
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page