Skip to content

Commit

Permalink
Merge pull request #7 from Hirevo/benchmark/rebench-setup
Browse files Browse the repository at this point in the history
Benchmarking setup with ReBench
  • Loading branch information
Hirevo authored Jun 23, 2020
2 parents 2c17a54 + 7545d1f commit a75e1ac
Show file tree
Hide file tree
Showing 2 changed files with 106 additions and 0 deletions.
36 changes: 36 additions & 0 deletions .github/workflows/bench.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Benchmarks

on:
pull_request:
push:
branches:
- master

jobs:
rebench:
name: Run and report benchmarks
runs-on: ubuntu-latest
steps:
- name: Checkout master branch
uses: actions/checkout@v2
with:
submodules: true
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: default
toolchain: stable
- name: Compile SOM interpreter
uses: actions-rs/cargo@v1
with:
command: build
args: --release -p som-interpreter
- name: Install ReBench
run: |
pip install setuptools
pip install wheel
pip install rebench
- name: Run and report benchmarks
run: |
export PATH="${PATH}:${HOME}/.local/bin"
rebench --without-nice --experiment="CI Benchmark Run ID ${GITHUB_RUN_ID}" --branch="${GITHUB_REF}" -c rebench.conf som-rs
70 changes: 70 additions & 0 deletions rebench.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# -*- mode: yaml -*-
# Config file for ReBench
default_experiment: som-rs
default_data_file: 'rebench.data'

reporting:
# Benchmark results will be reported to ReBenchDB
rebenchdb:
# this url needs to point to the API endpoint
db_url: https://rebench.polomack.eu/rebenchdb/results
repo_url: https://github.com/Hirevo/som-rs
record_all: true # make sure everything is recorded
project_name: som-rs

runs:
max_invocation_time: 60

benchmark_suites:
macro:
gauge_adapter: RebenchLog
command: &MACRO_CMD "-c core-lib/Smalltalk core-lib/Examples/Benchmarks core-lib/Examples/Benchmarks/Richards core-lib/Examples/Benchmarks/DeltaBlue core-lib/Examples/Benchmarks/NBody core-lib/Examples/Benchmarks/Json core-lib/Examples/Benchmarks/GraphSearch -- BenchmarkHarness %(benchmark)s %(iterations)s 0 "
iterations: 10
benchmarks:
- Richards: {extra_args: 1}
- DeltaBlue: {extra_args: 50}
- NBody: {extra_args: 500}
- JsonSmall: {extra_args: 1}
- GraphSearch: {extra_args: 4}
- PageRank: {extra_args: 40}

micro:
gauge_adapter: RebenchLog
command: "-c core-lib/Smalltalk core-lib/Examples/Benchmarks core-lib/Examples/Benchmarks/LanguageFeatures -- BenchmarkHarness %(benchmark)s %(iterations)s 0 "
iterations: 10
benchmarks:
- Fannkuch: {extra_args: 6}
- Fibonacci: {extra_args: "3"}
- Dispatch: {extra_args: 2}
- Bounce: {extra_args: "2"}
- Loop: {extra_args: 5}
- Permute: {extra_args: "3"}
- Queens: {extra_args: "2"}
- List: {extra_args: "2"}
- Recurse: {extra_args: "3"}
- Storage: {extra_args: 1}
- Sieve: {extra_args: 4}
- BubbleSort: {extra_args: "3"}
- QuickSort: {extra_args: 1}
- Sum: {extra_args: 2}
- Towers: {extra_args: "2"}
- TreeSort: {extra_args: "1"}
- IntegerLoop: {extra_args: 2}
- FieldLoop: {extra_args: 1}
- WhileLoop: {extra_args: 10}
- Mandelbrot: {extra_args: 30}

executors:
som-rs:
path: .
executable: ./target/release/som-interpreter

# define the benchmarks to be executed for a re-executable benchmark run
experiments:
som-rs:
description: All benchmarks on som-rs
suites:
- micro
- macro
executions:
- som-rs

0 comments on commit a75e1ac

Please sign in to comment.