polybench

Multivariate polynomial arithmetic benchmark tests.

https://github.com/tueda/polybench

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.9%) to scientific vocabulary

Keywords

benchmark mathematics multivariate-polynomials

Keywords from Contributors

interactive serializer cycles packaging network-simulation shellcodes hacking autograding observability genomics
Last synced: 6 months ago · JSON representation

Repository

Multivariate polynomial arithmetic benchmark tests.

Basic Info
  • Host: GitHub
  • Owner: tueda
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 343 KB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 1
  • Open Issues: 6
  • Releases: 0
Topics
benchmark mathematics multivariate-polynomials
Created about 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License

README.md

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:

sh 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

sh ./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. sh pip install polybench polybench --all python -m polybench --all # alternative way to launch sh pipx install polybench polybench --all sh git clone https://github.com/tueda/polybench.git cd polybench poetry install poetry run polybench --all sh 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-x8664-with-glibc2.29 | | pythonversion | 3.8.10.final.0 (64 bit) | | cpubrand | 12th Gen Intel(R) Core(TM) i9-12900 | | cpucount | 16 (logical: 24) | | totalmemory | 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.84.1 (e71f9a9a9 2025-01-27) | | Rings | 2.5.8, JVM: 11.0.20.1 (Ubuntu 11.0.20.1+1-post-Ubuntu-0ubuntu120.04) | | Singular | Singular for x8664-Linux version 4.4.1 (44100, 64 bit) Jan 2025 | | Symbolica | 0.15.0, rustc 1.84.1 (e71f9a9a9 2025-01-27) |

nontrivial-gcd

nontrivial-factor

Additional benchmark results are available here.

Development

```bash

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 # for example, --all

Release a new version

./scripts/make-release.sh # for example, 0.3.0rc1 ```

License

MIT

Owner

  • Name: Takahiro Ueda
  • Login: tueda
  • Kind: user

GitHub Events

Total
  • Issues event: 7
  • Watch event: 1
  • Delete event: 35
  • Issue comment event: 32
  • Push event: 55
  • Pull request event: 60
  • Fork event: 1
  • Create event: 34
Last Year
  • Issues event: 7
  • Watch event: 1
  • Delete event: 35
  • Issue comment event: 32
  • Push event: 55
  • Pull request event: 60
  • Fork event: 1
  • Create event: 34

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 116
  • Total Committers: 3
  • Avg Commits per committer: 38.667
  • Development Distribution Score (DDS): 0.138
Past Year
  • Commits: 67
  • Committers: 3
  • Avg Commits per committer: 22.333
  • Development Distribution Score (DDS): 0.239
Top Committers
Name Email Commits
Takahiro Ueda t****d@j****p 100
dependabot[bot] 4****] 15
Ben Ruijl b****l@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 64
  • Average time to close issues: about 2 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.36
  • Average comments per pull request: 0.92
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 62
Past Year
  • Issues: 5
  • Pull requests: 54
  • Average time to close issues: 2 days
  • Average time to close pull requests: 12 days
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.8
  • Average comments per pull request: 0.69
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 52
Top Authors
Issue Authors
  • tueda (10)
  • benruijl (1)
Pull Request Authors
  • dependabot[bot] (78)
  • benruijl (2)
Top Labels
Issue Labels
enhancement (5) bug (1)
Pull Request Labels
dependencies (78) java (56) rust (18) github_actions (4)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 75 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 10
  • Total maintainers: 1
pypi.org: polybench

Multivariate polynomial arithmetic benchmark tests.

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 75 Last month
Rankings
Dependent packages count: 10.0%
Dependent repos count: 21.7%
Average: 27.6%
Forks count: 29.8%
Downloads: 37.6%
Stargazers count: 38.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

polybench/solvers/reform/Cargo.lock cargo
  • aho-corasick 0.7.15
  • ansi_term 0.11.0
  • arrayvec 0.4.12
  • atty 0.2.14
  • autocfg 1.0.1
  • az 1.0.0
  • bitflags 1.2.1
  • block-buffer 0.7.3
  • block-padding 0.1.5
  • byte-tools 0.3.1
  • byteorder 1.3.4
  • cfg-if 0.1.10
  • chrono 0.4.19
  • clap 2.33.3
  • cloudabi 0.0.3
  • crossbeam 0.4.1
  • crossbeam-channel 0.2.6
  • crossbeam-deque 0.5.2
  • crossbeam-epoch 0.5.2
  • crossbeam-epoch 0.6.1
  • crossbeam-utils 0.5.0
  • crossbeam-utils 0.6.6
  • digest 0.8.1
  • either 1.6.1
  • env_logger 0.5.13
  • fake-simd 0.1.2
  • fastdivide 0.2.0
  • fuchsia-cprng 0.1.1
  • generic-array 0.12.3
  • gmp-mpfr-sys 1.4.2
  • hashbrown 0.1.8
  • hermit-abi 0.1.17
  • humantime 1.3.0
  • itertools 0.7.11
  • lazy_static 1.4.0
  • libc 0.2.81
  • lock_api 0.1.5
  • log 0.4.11
  • maplit 1.0.2
  • matrixmultiply 0.1.15
  • maybe-uninit 2.0.0
  • memchr 2.3.4
  • memoffset 0.2.1
  • ndarray 0.12.1
  • nodrop 0.1.14
  • num-complex 0.2.4
  • num-integer 0.1.44
  • num-traits 0.2.14
  • opaque-debug 0.2.3
  • owning_ref 0.4.1
  • parking_lot 0.6.4
  • parking_lot_core 0.3.1
  • pest 2.1.3
  • pest_derive 2.1.0
  • pest_generator 2.1.3
  • pest_meta 2.1.3
  • proc-macro2 1.0.24
  • quick-error 1.2.3
  • quote 1.0.8
  • rand 0.5.6
  • rand_core 0.3.1
  • rand_core 0.4.2
  • rawpointer 0.1.0
  • regex 1.4.2
  • regex-syntax 0.6.21
  • rug 1.11.0
  • rustc_version 0.2.3
  • scopeguard 0.3.3
  • semver 0.9.0
  • semver-parser 0.7.0
  • sha-1 0.8.2
  • smallvec 0.6.13
  • stable_deref_trait 1.2.0
  • strsim 0.8.0
  • syn 1.0.56
  • termcolor 1.1.2
  • textwrap 0.11.0
  • thread_local 1.0.1
  • time 0.1.44
  • typenum 1.12.0
  • ucd-trie 0.1.3
  • unicode-width 0.1.8
  • unicode-xid 0.2.1
  • vec_map 0.8.2
  • wasi 0.10.0+wasi-snapshot-preview1
  • winapi 0.3.9
  • winapi-i686-pc-windows-gnu 0.4.0
  • winapi-util 0.1.5
  • winapi-x86_64-pc-windows-gnu 0.4.0
polybench/solvers/rings/build.gradle maven
  • cc.redberry:rings ${versions.rings} implementation
poetry.lock pypi
  • atomicwrites 1.4.0 develop
  • attrs 21.2.0 develop
  • coverage 6.2 develop
  • iniconfig 1.1.1 develop
  • packaging 21.3 develop
  • pluggy 1.0.0 develop
  • py 1.11.0 develop
  • pytest 6.2.5 develop
  • pytest-cov 3.0.0 develop
  • colorama 0.4.4
  • colorlog 6.6.0
  • cycler 0.11.0
  • importlib-metadata 4.8.3
  • importlib-resources 5.4.0
  • kiwisolver 1.3.2
  • kiwisolver 1.3.1
  • matplotlib 3.3.4
  • numpy 1.19.5
  • numpy 1.21.5
  • pandas 1.1.5
  • pillow 8.4.0
  • pretty-errors 1.2.25
  • psutil 5.8.0
  • py-cpuinfo 8.0.0
  • pyparsing 3.0.6
  • python-dateutil 2.8.2
  • pytz 2021.3
  • six 1.16.0
  • symengine 0.8.1
  • toml 0.10.2
  • tomli 1.2.3
  • typing-extensions 4.0.1
  • zipp 3.6.0
pyproject.toml pypi
  • pytest ^6.2.5 develop
  • pytest-cov ^3.0.0 develop
  • colorama ^0.4.4
  • colorlog ^6.6.0
  • importlib-metadata ^4.8.3
  • importlib-resources ^5.4.0
  • kiwisolver --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: 1.3.1 python: "~3.6.1" - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^1.3.2" python: ">=3.7,<3.11"
  • matplotlib ^3.3.4
  • numpy --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "~1.19.5" python: "~3.6.1" - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^1.21.5" python: ">=3.7,<3.11"
  • pandas ^1.1.5
  • pretty-errors ^1.2.25
  • psutil ^5.8.0
  • py-cpuinfo ^8.0.0
  • python ^3.6.1
  • symengine ^0.8.1
  • toml ^0.10.2
  • tomli ^1.2.3
  • typing-extensions ^4.0.1
.github/workflows/bench.yml actions
  • actions-rs/toolchain v1 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
.github/workflows/lint.yml actions
  • actions-rs/cargo v1 composite
  • actions-rs/toolchain v1 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • actions/setup-python v2 composite
  • eskatos/gradle-command-action v1 composite
  • gradle/wrapper-validation-action v1 composite
  • hadolint/hadolint-action v1.6.0 composite
  • pre-commit/action v2.0.0 composite
.github/workflows/release.yml actions
  • Gr1N/setup-poetry v7 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/test.yml actions
  • actions-rs/toolchain v1 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • actions/setup-python v2 composite
polybench/solvers/reform/Cargo.toml cargo
Dockerfile docker
  • ubuntu focal build
polybench/solvers/flint/vcpkg.json vcpkg
  • flint >=2.9.0
.github/workflows/dependency-submission.yml actions
  • actions/checkout v4 composite
  • actions/setup-java v4 composite
  • gradle/actions/dependency-submission v4 composite
polybench/solvers/symbolica/Cargo.lock cargo
  • ahash 0.8.11
  • alloc-no-stdlib 2.0.4
  • alloc-stdlib 0.2.2
  • append-only-vec 0.1.5
  • autocfg 1.3.0
  • az 1.2.1
  • brotli 5.0.0
  • brotli-decompressor 4.0.1
  • bytemuck 1.17.0
  • byteorder 1.5.0
  • bytes 1.7.1
  • cfg-if 1.0.0
  • colored 2.1.0
  • crossbeam-deque 0.8.5
  • crossbeam-epoch 0.9.18
  • crossbeam-utils 0.8.20
  • dyn-clone 1.0.17
  • either 1.13.0
  • getrandom 0.2.15
  • gmp-mpfr-sys 1.6.4
  • lazy_static 1.5.0
  • libc 0.2.156
  • libloading 0.8.5
  • libm 0.2.8
  • once_cell 1.19.0
  • pin-project-lite 0.2.14
  • ppv-lite86 0.2.20
  • proc-macro2 1.0.86
  • quote 1.0.36
  • rand 0.8.5
  • rand_chacha 0.3.1
  • rand_core 0.6.4
  • rand_xoshiro 0.6.0
  • rayon 1.10.0
  • rayon-core 1.12.1
  • rug 1.25.0
  • safe_arch 0.7.2
  • self_cell 1.0.4
  • serde 1.0.208
  • serde_derive 1.0.208
  • smallvec 1.13.2
  • smartstring 1.0.1
  • static_assertions 1.1.0
  • symbolica 0.10.0
  • syn 2.0.74
  • tinyjson 2.5.1
  • tracing 0.1.40
  • tracing-attributes 0.1.27
  • tracing-core 0.1.32
  • unicode-ident 1.0.12
  • version_check 0.9.5
  • wasi 0.11.0+wasi-snapshot-preview1
  • wide 0.7.28
  • windows-sys 0.48.0
  • windows-sys 0.52.0
  • windows-targets 0.48.5
  • windows-targets 0.52.6
  • windows_aarch64_gnullvm 0.48.5
  • windows_aarch64_gnullvm 0.52.6
  • windows_aarch64_msvc 0.48.5
  • windows_aarch64_msvc 0.52.6
  • windows_i686_gnu 0.48.5
  • windows_i686_gnu 0.52.6
  • windows_i686_gnullvm 0.52.6
  • windows_i686_msvc 0.48.5
  • windows_i686_msvc 0.52.6
  • windows_x86_64_gnu 0.48.5
  • windows_x86_64_gnu 0.52.6
  • windows_x86_64_gnullvm 0.48.5
  • windows_x86_64_gnullvm 0.52.6
  • windows_x86_64_msvc 0.48.5
  • windows_x86_64_msvc 0.52.6
  • zerocopy 0.7.35
  • zerocopy-derive 0.7.35
polybench/solvers/symbolica/Cargo.toml cargo