Benchmarks
The benchmark suite is defined once and then executed in three different environments:
- Local desktop for quick smoke runs
- GitHub Actions for the
smalltier on pushes and pull requests - SLURM for the
largetier and full cluster-scale runs
The suite is sharded by operation family and deployment tier:
assembly-small,solver-small,extension-smallassembly-large,solver-large,extension-large
Only the small tier is intended for GitHub Actions. The large tier is reserved for SLURM or explicit local runs.
Local commands
Instantiate the benchmark environment once:
julia --project=bench -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'Run all small shards locally:
julia --project=bench bench/run_benchmarks.jlRun one shard explicitly:
BENCHMARK_PROFILE=small BENCHMARK_SHARD=assembly-small julia --project=bench bench/run_benchmarks.jlRender a merged report from prior artifacts:
BENCHMARK_INPUT_DIR=bench/results BENCHMARK_OUTPUT_DIR=bench/results julia --project=bench bench/render_report.jlCompare the current checkout against main with PkgBenchmark.jl:
BENCHMARK_PROFILE=small BENCHMARK_BASELINE_REF=main julia --project=bench bench/compare_benchmarks.jlGitHub Actions
The dedicated benchmarks.yml workflow runs the small shards as a matrix and then aggregates the uploaded artifacts into a merged HTML and Markdown report.
SLURM
The bench/slurm_benchmarks.sh launcher submits one large shard per array task and then runs a dependent aggregation job.
Generated report
The latest checked-in benchmark report placeholder lives here: