Skip to content

Feature/348 increase benchmark runs and fix fixed iteration ceiling#350

Merged
jathavaan merged 5 commits into
mainfrom
feature/348-increase-benchmark-runs-and-fix-fixed-iteration-ceiling
May 26, 2026
Merged

Feature/348 increase benchmark runs and fix fixed iteration ceiling#350
jathavaan merged 5 commits into
mainfrom
feature/348-increase-benchmark-runs-and-fix-fixed-iteration-ceiling

Conversation

@jathavaan
Copy link
Copy Markdown
Collaborator

This pull request updates the benchmark configuration and runner to improve experiment tracking and handling of skipped benchmarks. The most significant changes are the addition of an explicit runs parameter for all experiments in benchmarks.yml, and an enhancement to how skipped experiments and their reasons are recorded and reported in benchmark_runner.py.

Benchmark configuration improvements:

Benchmark runner enhancements:

  • Refactored the skip logic in benchmark_runner.py to use a new _get_skip_reason() function, which returns a StopReason enum value (or None) instead of a boolean. This enables more detailed reporting and handling of different skip scenarios.

  • Updated the main experiment runner to log and record the specific skip reason in the metadata when an experiment is skipped, rather than just marking it as failed.

jathavaan added 4 commits May 26, 2026 10:51
…d-iteration ceiling

BENCHMARK_RUNS: 1 → 30, BENCHMARK_MAX_ITERATION_SECONDS: 4500 → 3600,
BENCHMARK_MAX_FIXED_WINDOW_SECONDS: 75 min → 300 min.
RQ1 experiments: runs: 30. RQ2 experiments: runs: 3.
national-scale-spatial-join-duckdb-large: skip: true (exceeds 60-min threshold).
Orchestrator checks experiment["runs"] before launching a batch.
When benchmark_run > runs, marks experiment and related peers as completed.
benchmarks.yml: skip: true → skip: timeout | skip: failed per experiment.
StopReason.from_skip(): parse YAML skip value into enum.
benchmark_runner: _is_skipped → _get_skip_reason returning StopReason.
Config: LOGGING_LEVEL changed to DEBUG.
@jathavaan jathavaan self-assigned this May 26, 2026
Copilot AI review requested due to automatic review settings May 26, 2026 09:21
@jathavaan jathavaan linked an issue May 26, 2026 that may be closed by this pull request
Signed-off-by: Jathavaan Shankarr <jathavaan12@gmail.com>
@jathavaan jathavaan enabled auto-merge May 26, 2026 09:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the benchmarking suite configuration and orchestration to support per-experiment run counts and more descriptive skip reasons, while also adjusting benchmark time/ceiling defaults to better match the intended execution constraints.

Changes:

  • Add explicit runs per experiment (and richer skip reasons) in benchmarks.yml.
  • Update orchestration (main.py) to skip launching experiments when benchmark_run exceeds an experiment’s configured runs.
  • Update in-container runner (benchmark_runner.py) to persist skip reasons in run metadata; add StopReason.from_skip() helper and adjust benchmark defaults in Config.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/domain/enums/stop_reason.py Adds helper to map benchmarks.yml skip values to StopReason.
src/config.py Updates benchmark defaults (runs/time ceilings) and logging level.
main.py Skips experiments (and their related batch members) once their configured runs limit is exceeded.
benchmarks.yml Adds per-experiment runs and replaces boolean skips with descriptive reasons (e.g., timeout, failed).
benchmark_runner.py Refactors skip handling to record a specific skip reason in persisted run metadata.
Comments suppressed due to low confidence (1)

src/config.py:57

  • Setting the default LOGGING_LEVEL to DEBUG will significantly increase log volume (console + file) for all runs, which can impact performance/cost and make logs noisy. Consider keeping the default at INFO and making DEBUG opt-in via an environment variable (e.g., LOGGING_LEVEL), especially for benchmark/orchestrator runs.
    # LOGGING
    LOGGING_LEVEL: int = logging.INFO
    LOG_FILE: Path = LOG_DIR / f"{datetime.now().strftime('%Y%m%d_%H%M%S')}.log"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/domain/enums/stop_reason.py
Comment thread main.py
Comment thread benchmark_runner.py
@jathavaan jathavaan merged commit 9f0be0a into main May 26, 2026
23 checks passed
@jathavaan jathavaan deleted the feature/348-increase-benchmark-runs-and-fix-fixed-iteration-ceiling branch May 26, 2026 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Increase benchmark runs and fix fixed-iteration ceiling

2 participants