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
Keywords from Contributors
Repository
Multivariate polynomial arithmetic benchmark tests.
Basic Info
Statistics
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 6
- Releases: 0
Topics
Metadata Files
README.md
polybench
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
- Python >= 3.6.1
You also need at least one or more tools to be benchmarked. They are (in alphabetical order):
- Fermat
- FLINT: automatically downloaded via vcpkg (requires CMake >= 3.15, a C compiler and the Make utility; see also vcpkg dependencies).
- FORM: if not available in the system, then a release binary will be automatically downloaded.
- Mathematica: indeed, Free Wolfram Engine for Developers is sufficient to run.
- reFORM: automatically downloaded (requires Rust >= 1.36).
- Rings: automatically downloaded (requires JDK >= 8).
- Singular
- Symbolica: automatically downloaded (requires Rust >= 1.85), running in restricted mode.
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) |


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
Release a new version
./scripts/make-release.sh
License
Owner
- Name: Takahiro Ueda
- Login: tueda
- Kind: user
- Repositories: 19
- Profile: https://github.com/tueda
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
Top Committers
| Name | 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
Pull Request Labels
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.
- Homepage: https://github.com/tueda/polybench
- Documentation: https://polybench.readthedocs.io/
- License: MIT
-
Latest release: 0.3.3
published 7 months ago
Rankings
Maintainers (1)
Dependencies
- 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
- cc.redberry:rings ${versions.rings} implementation
- 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
- 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
- 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
- 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
- Gr1N/setup-poetry v7 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions-rs/toolchain v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-java v1 composite
- actions/setup-python v2 composite
- ubuntu focal build
- flint >=2.9.0
- actions/checkout v4 composite
- actions/setup-java v4 composite
- gradle/actions/dependency-submission v4 composite
- 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