CLI Reference

srtctl is the main command-line interface for submitting benchmark jobs to SLURM.

Table of Contents


Quick Start

Interactive Mode

Running srtctl with no arguments launches an interactive TUI (Text User Interface) powered by Rich and Questionary:

Interactive mode is ideal for:

  • Exploring available recipes without memorizing paths

  • Previewing and tweaking configurations before submission

  • Understanding what a sweep will expand to

  • Quick experimentation and validation

Recipe Browser

On launch, interactive mode scans the recipies/ directory and presents recipes organized by subdirectory:

Features:

  • Recipes grouped by parent directory for easy navigation

  • Arrow keys to navigate, Enter to select

  • "Browse for file..." option for configs outside recipies/

  • If no recipes found, prompts for manual path entry

Configuration Summary

After selecting a recipe, you'll see a tree-style summary:

Interactive Actions Menu

After viewing the config summary, you'll see an action menu:

sbatch Preview

The "Preview sbatch script" option shows the exact SLURM script that will be submitted:

The script is syntax-highlighted with line numbers for easy reading.

Parameter Modification

The "Modify parameters" option lets you interactively change key settings:

Modifiable fields:

  • name - Job name

  • resources.prefill_workers - Number of prefill workers

  • resources.decode_workers - Number of decode workers

  • benchmark.isl - Input sequence length

  • benchmark.osl - Output sequence length

Modified configs are saved to a temporary file and used for submission.

Sweep Preview

For configs with a sweep: section, interactive mode shows an expansion table:

Submission Confirmation

Before submitting, you'll be asked to confirm:

For sweeps, the confirmation shows:

  • Full configuration summary

  • Sweep expansion table

  • Total job count

Workflow Examples

Exploring a new recipe:

Quick experiment with modifications:

Sweep validation:

Commands

srtctl apply

Submit a job or sweep to SLURM.

Options:

Flag
Description

-f, --file

Path to YAML config file (required)

--sweep

Force sweep mode (usually auto-detected)

--setup-script

Custom setup script from configs/

--tags

Comma-separated tags for the run

-y, --yes

Skip confirmation prompts

Examples:

srtctl dry-run

Preview what would be submitted without actually submitting.

Options:

Flag
Description

-f, --file

Path to YAML config file (required)

--sweep

Force sweep mode

Examples:

Dry-run output includes:

  • Syntax-highlighted sbatch script

  • For sweeps: table of all jobs with parameters

  • Generated configs saved to dry-runs/ folder

Output

When you submit a job, srtctl creates an output directory:

Sweep Support

Configs with a sweep: section are automatically detected and expanded:

This creates 4 jobs (2 × 2 Cartesian product). See Parameter Sweeps for details.

Tips

  • Use srtctl (no args) for exploring recipes interactively

  • Use srtctl apply -f for scripting and CI pipelines

  • Always dry-run first for sweeps to check job count

  • Check outputs/<job_id>/ for submitted configs and metadata

Last updated