Skip to content

Outsource benchmark scenarios to separate repos #79

@berndflemisch

Description

@berndflemisch

In the meeting 2026-04-30, we decided to split up repositories. From the minutes:

Repository structure

We agreed that in the midterm we aim for a single repository with a benchmark definition and then individual repositories for each implementation of a benchmark (if people want to publish their implementation)

Main repo (current github repo)

  • Includes the main transformation scripts (e.g. developed by Mahdi to get an ROCrate out of the subcrates

  • Examples on how to build these

  • Registry for all Benchmark repositories

  • Potentially a documentation (SWIG*) routine that collects the documentation files from all repos and builds a joint summary documentation

Benchmark repo

  • For each benchmark, we create a separate repo

  • It includes the semantic representation of the benchmark, a documentation (markdown) and a postprocessing script the contains potential queries to the knowledge graph and plots that for relevant metrices (e.g. convergence plot for different metrics as in plate with a hole)

  • There is a version, and the benchmark can be published. Each published version (e.g. in the github actions) builds an ROcrate for the benchmark definition that is uploaded to ROHub

  • While the package is build, a the documentation and the postprocessing scripts are combined into a jupyter notebook, such that a user can download the notebook and visually explore the results of the benchmark obtain for different software implementations

Software repo

  • For each tool (or multiple), this repo stores the implementation of a specific benchmark in a specific tool

  • In the optimal case, It provides a workflow to call the tool for a specific benchmark

  • It regularly performs integration tests, potentially creating new ROCrates for each run (potentially those can be published automatically), at least when major changes are done. It might also contain multiple versions (e.g. fenics and fenicx, or version 12.0 and 13.0 of a software) that can still be tested (as long as they are maintained and are used

With this issue, we document the progress of this splitting process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions