Skip to main content

Multivariate polynomial arithmetic benchmark tests.

Project description

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 2.9.0, cc (GNU) 10.5.0
FORM FORM 4.3.1 (Apr 11 2023, v4.3.1) 64-bits
Mathematica 14.1.0 for Linux x86 (64-bit) (July 22, 2024)
reFORM 0.1.0-fix-serialize, rustc 1.81.0 (eeb90cda1 2024-09-04)
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.0 (44002, 64 bit) May 29 2024 14:14:10
Symbolica 0.11.0, rustc 1.81.0 (eeb90cda1 2024-09-04)

nontrivial-gcd

nontrivial-factor

Additional benchmark results are available here.

Development

# Initialisation
poetry install
pre-commit install

# Linting and testing
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

Project details


Download files

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

Source Distribution

polybench-0.3.0.tar.gz (102.8 kB view details)

Uploaded Source

Built Distribution

polybench-0.3.0-py3-none-any.whl (108.6 kB view details)

Uploaded Python 3

File details

Details for the file polybench-0.3.0.tar.gz.

File metadata

  • Download URL: polybench-0.3.0.tar.gz
  • Upload date:
  • Size: 102.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.8.0-1014-azure

File hashes

Hashes for polybench-0.3.0.tar.gz
Algorithm Hash digest
SHA256 0bd1f3e7133d3691b40bc09a1679e49e79bdc7bf00d89e9c0ab498aa2fb8e065
MD5 df61ab33e2557afb87a0c43fe9530e99
BLAKE2b-256 f2f8d3df7deeacc69124d722af302345728d37f273a607bb282a2385ca9cb0f5

See more details on using hashes here.

File details

Details for the file polybench-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: polybench-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 108.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.12 Linux/6.8.0-1014-azure

File hashes

Hashes for polybench-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6907835f95bfc1024165cb10420145f001520c9d485f0990254e0d9742941096
MD5 5864d8010836e84dc95dbc229cf4c52b
BLAKE2b-256 62762e870333b0c1e5c66a3200da5b566ba2b0a518703ffce35e042ba4cc1e01

See more details on using hashes here.

Supported by

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