Skip to main content

A tool for automating benchmarks of programming assignments.

Project description

benchie

Release Build status codecov Commit activity License

A tool for automating benchmarks of programming assignments.

Installation

Install uv.

You can run the tool without installation using the following command:

uvx benchie --help

To install the tool in an environment, you can run:

uv venv
uv pip install benchie

Run as a student

Example data

With the example data in this repository at solutions/ and data/ you can run the following command:

benchie run -S -e "example_sleep" --disable_pretest -b hyperfine -b memray_tracker

The output will be stored in output/example_sleep/.

Custom data

Put different implementations at solutions/{exercise_1}/{implementation_1}.py.

Run the benchmark with disabled fetching of Dodona submissions and only the first 3 datasets:

benchie run -S -e "{exercise_1}" --subset_data 3

Output will be stored in output/{exercise_1}.

Run as a teacher

Fetch token from Dodona user profile and store as token file.

Setup recurrent job

  • Use deploy keys
  • Use git instead of https as git origin remote URL
  • setup cron job
  • copy conda init lines from ~/.bashrc to ~/.bashrc_conda

Use crontab -e to add a cron job (edit the repo path):

SHELL=/bin/bash
BASH_ENV=~/.bashrc_conda
0 * * * * conda activate combio_benchmark_2024; timeout --signal=KILL 1h benchie run -e "global_alignment" -fC >> ~/combio_benchmark_job.log 2>&1

Repository initiated with fpgmaas/cookiecutter-uv.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

benchie-0.0.2.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

benchie-0.0.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file benchie-0.0.2.tar.gz.

File metadata

  • Download URL: benchie-0.0.2.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for benchie-0.0.2.tar.gz
Algorithm Hash digest
SHA256 0af33c0d1e9f90f6df1c01071b4a22d35fb5d559222260795ddf8d8e496ec6b4
MD5 e522142675b43a6e144998b3a6235808
BLAKE2b-256 d20050698f8517c48362eaaa5fec1b9e6054e0eb1e4297b45c9e776c5ca783a7

See more details on using hashes here.

File details

Details for the file benchie-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: benchie-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for benchie-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e27c4f79dcf3e555735ed7717675e3e2101afd7e04b84387630cb17c5ffeb7ca
MD5 e983834c01c5a7b397b992a1376fda80
BLAKE2b-256 128aecee96d1534959331fff80d2eb1274c40c56c2ba09018f3077e63d942a70

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page