IOPS
A generic benchmark orchestration framework for automated parametric experiments.
IOPS transforms benchmark experiments from manual scripting into automated, reproducible workflows. Define a YAML configuration describing what to vary, what to run, and what to measure—IOPS handles the rest.
Features
- Parameter Sweeping — Automatically generate and execute tests for all parameter combinations
- Multiple Search Strategies — Exhaustive, Bayesian optimization, or random sampling
- Execution Backends — Run locally or submit to SLURM clusters
- Smart Caching — Skip redundant tests with parameter-aware result caching
- Budget Control — Set core-hour limits to avoid exceeding compute allocations
- Automatic Reports — Generate interactive HTML reports with plots and statistical analysis
Quick Start
# Generate a configuration template
iops generate my_config.yaml
# Preview what will be executed
iops run my_config.yaml --dry-run
# Run the benchmark
iops run my_config.yaml
# Explore executions and filter by parameters
iops find ./workdir/run_001
iops find ./workdir/run_001 threads=4 buffer_size=256
# Generate an HTML report
iops report ./workdir/run_001
Example Configuration
benchmark:
name: "My Benchmark Study"
workdir: "./workdir"
executor: "local"
repetitions: 3
vars:
threads:
type: int
sweep:
mode: list
values: [1, 2, 4, 8]
buffer_size:
type: int
sweep:
mode: list
values: [64, 256, 1024]
command:
template: "my_benchmark --threads {{ threads }} --buffer {{ buffer_size }}"
scripts:
- name: "benchmark"
submit: "bash"
script_template: |
#!/bin/bash
# Built-in variables: execution_id, execution_dir, repetition
echo "Running execution {{ execution_id }}, repetition {{ repetition }}"
{{ command.template }} > output.txt
parser:
# execution_dir is automatically set to each execution's folder
file: "{{ execution_dir }}/output.txt"
metrics:
- name: throughput
parser_script: |
import re
def parse(file_path: str):
with open(file_path) as f:
content = f.read()
match = re.search(r"throughput:\s*([\d.]+)", content)
return {"throughput": float(match.group(1)) if match else 0}
output:
sink:
type: csv
path: "{{ workdir }}/results.csv"
Documentation
Full documentation, examples, and tutorials: https://lgouveia.gitlabpages.inria.fr/iops/
License
BSD-3-Clause — Developed at Inria.
Metadata
Release files for iops-benchmark 3.5.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| iops_benchmark-3.5.9.tar.gz | 690.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iops_benchmark-3.5.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / iops_benchmark-3.5.9.tar.gz
| Download URL | iops_benchmark-3.5.9.tar.gz |
|---|---|
| Size | 690.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8ed2e3ff9c51c6b51935d7b11dd01ba8f1892af4a3ec6cf26c969e84cf1c792
|
|
BLAKE2b-256 checksum How to use checksums |
7adf2729602cbb4abc804f1d8147d0692ae8c11e355d0d8cc8585cb0f2a5d67d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / iops_benchmark-3.5.9-py3-none-any.whl
| Download URL | iops_benchmark-3.5.9-py3-none-any.whl |
|---|---|
| Size | 542.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed4742d4c90dace1c12b103aa49878de7faf7fdce09287f4c6881ea88b4d32d3
|
|
BLAKE2b-256 checksum How to use checksums |
623f7c0fa3e6a1586161ffb4beeb323920a664b9c69a7114074de1f0a5e35e04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Security for iops-benchmark 3.5.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.