Snakemake scheduler plugin: grapheonrl

https://img.shields.io/badge/repository-github-blue?color=%23022c22 GitHub - Last commit https://img.shields.io/badge/author-Aasish%20Kumar%20Sharma%20%3Caasish.sharma%40uni--goettingen.de%3E-purple?color=%23064e3b PyPI - Version PyPI - License Snakemake

Warning

This plugin is not maintained and reviewed by the official Snakemake organization.

Warning

No documentation found in repository https://github.com/AasishKumarSharma/snakemake-scheduler-plugin-grapheonrl. The plugin should provide a docs/intro.md with some introductory sentences and optionally a docs/further.md file with details beyond the auto-generated usage instructions presented in this catalog.

Installation

Install this plugin by installing it with pip or mamba directly, e.g.:

pip install snakemake-scheduler-plugin-grapheonrl

Or, if you are using pixi, add the plugin to your pixi.toml. Be careful to put it under the right dependency type based on the plugin’s availability, e.g.:

snakemake-scheduler-plugin-grapheonrl = "*"

Usage

In order to use the plugin, run Snakemake (>=9.10) with the corresponding value for the scheduler flag:

snakemake --scheduler grapheonrl ...

with ... being any additional arguments you want to use.

Settings

The scheduler plugin has the following settings (which can be passed via command line, the workflow or environment variables, if provided in the respective columns):

Settings

CLI argument

Description

Default

Choices

Required

Type

--scheduler-grapheonrl-strategy VALUE

‘cascade’ (GNNRL->MILP->HEFT with quality gate), ‘gnnrl’, ‘heft’, ‘priority’

'cascade'

cascade, milp, gnnrl, heft, priority

--scheduler-grapheonrl-model-path VALUE

Path to trained GrapheonRL model (.pt). If not set, the plugin auto-discovers .snakemake/grapheonrl/model.pt in the workflow directory.

None

--scheduler-grapheonrl-train VALUE

Force train GNNRL before executing (explicit override). Under normal usage, auto-train handles this automatically. Use this flag to force re-training even when a model already exists, or to control the number of training iterations explicitly. Training runs before the first job is submitted. Model saved to .snakemake/grapheonrl/model.pt and reused on future runs.

False

--scheduler-grapheonrl-train-iters VALUE

PPO training iterations when –scheduler-grapheonrl-train is set. 50 = seconds (fast start), 200 = minutes (stronger policy). Default: 50.

50

--scheduler-grapheonrl-gnnrl-threshold VALUE

Max remaining jobs for GNNRL inference. Above this, GNNRL is skipped (cascade falls through to MILP then HEFT). GNNRL has O(n^2) inference cost; keep below 300 for <1s. Default: 300.

300

--scheduler-grapheonrl-milp-threshold VALUE

Max remaining jobs for MILP (default: 30)

30

--scheduler-grapheonrl-milp-timeout VALUE

MILP timeout seconds (default: 10)

10.0

--scheduler-grapheonrl-export-dag VALUE

Export DAG as JSON for offline GNNRL training

None

--scheduler-grapheonrl-node-config VALUE

Node config JSON (production format) for heterogeneous scheduling

None

--scheduler-grapheonrl-train-after VALUE

Automatically trigger GNNRL training after this many completed workflow runs have been recorded in the digital twin (dag_export.json). Example: –scheduler-grapheonrl-train-after 3 trains on the 3rd run. Requires –scheduler-grapheonrl-export-dag or the auto dag_export path.

None

--scheduler-grapheonrl-disable-auto-train VALUE

Disable automatic GNNRL training before the first scheduling round. By default the plugin trains GNNRL on the workflow DAG when no trained model exists. Pass this flag to skip auto-training and use the generic pretrained model (with quality gate) instead. Equivalent to: auto-train disabled.

False

--scheduler-grapheonrl-disable-auto-twin VALUE

Disable automatic digital twin updates. By default the plugin exports the workflow DAG to .snakemake/grapheonrl/dag_export.json and updates it with run metrics after each execution. Pass this flag to disable background updates.

False