tauopt-bench CLI reference#

Every line below comes from the checkout’s argparse tree (tauopt_bench.cli.build_parser(), imported from the repository’s bench/python), rendered by tools/gen_cli_reference.py; bench/python/tests/test_cli_reference_is_current.py fails when this page and the suite disagree. The page states no result: it lists the subcommands, their flags, defaults, and help text. Run the benchmark suite installs the suite and walks the commands. python -m tauopt_bench.cli is the same entry point as the tauopt-bench console script.

tauopt-bench#

With no arguments the command prints its banner and usage:

tauopt-bench -- benchmark suite for Bayesian-optimization methods.

This release claims the package name; the real package ships from
https://github.com/talariasci/tauopt -- see https://talariasci.com

usage: tauopt-bench [-h]
                    {list,plan,run,fanout,fanout-bake,fanout-bake-candidate,skyseam-emit,merge,canonical,report}
                    ...

tauopt-bench list#

Registered problems, methods, and frozen presets.

usage: tauopt-bench list [-h]

options:
  -h, --help  show this help message and exit

tauopt-bench plan#

Split a protocol into shard specs.

usage: tauopt-bench plan [-h] --protocol PROTOCOL --shards SHARDS --out OUT
                         [--isolate-adapter NAME]

options:
  -h, --help            show this help message and exit
  --protocol PROTOCOL   preset name or protocol JSON path
  --shards SHARDS
  --out OUT
  --isolate-adapter NAME
                        pull this adapter's cells into one dedicated trailing
                        shard (repeatable) -- the shard-by-environment seam
                        for isolated-venv adapters (hebo: see bench/hebo-
                        venv.sh)

tauopt-bench run#

Run a full protocol or one shard spec.

usage: tauopt-bench run [-h] [--protocol PROTOCOL] [--shard SHARD] --out OUT
                        [--workers WORKERS] [--torch-threads N]
                        [--max-tasks-per-worker N]

options:
  -h, --help            show this help message and exit
  --protocol PROTOCOL   preset name or protocol JSON path
  --shard SHARD         path to a shard-NNNN.json spec
  --out OUT             run directory (created). One that already holds this
                        protocol's receipts.jsonl is RESUMED: its cells are
                        skipped and the rest appended; one holding another
                        protocol's, another shard's, or another environment's
                        receipts, or a cell twice, is refused, as is one
                        another run holds (its .run.lock)
  --workers WORKERS     parallel cell workers: N or 'auto' (all cores;
                        default). Receipts are worker-count-invariant; dial
                        down to leave cores free.
  --torch-threads N     pinned torch intra-op threads per cell (default 1;
                        recorded in the env fingerprint -- changing it changes
                        numerics, i.e. a different environment)
  --max-tasks-per-worker N
                        recycle each pooled worker after N cells (default 1 =
                        a fresh process per cell: resets per-process map
                        counts and library arenas -- the S9 fleet-OOM fix; 0 =
                        legacy long-lived workers). Receipt-safe: recorded in
                        the run manifest, never in receipts

tauopt-bench fanout#

Fan a protocol out as one managed cloud job per shard (SkyPilot backend; –emit-yaml-only for BYO schedulers).

usage: tauopt-bench fanout [-h] --protocol PROTOCOL [--shards SHARDS] --out
                           OUT --bucket gs://... [--image docker:...]
                           [--source] [--campaign CAMPAIGN]
                           [--instance-type INSTANCE_TYPE] [--infra INFRA]
                           [--spot] [--isolate-adapter NAME]
                           [--max-restarts MAX_RESTARTS]
                           [--workers-per-shard WORKERS_PER_SHARD]
                           [--torch-threads TORCH_THREADS]
                           [--max-tasks-per-worker MAX_TASKS_PER_WORKER]
                           [--poll-interval POLL_INTERVAL]
                           [--poll-timeout POLL_TIMEOUT]
                           [--registry-token-auth] [--reuse-attempts]
                           [--emit-yaml-only]
                           [--cost-tables {none,auto,require}]
                           [--boot-image auto|none|projects/...]

options:
  -h, --help            show this help message and exit
  --protocol PROTOCOL   preset name or protocol JSON path
  --shards SHARDS       shard count, or 'auto' (default) = one wave:
                        ceil(general cells / 44) so every cell has a worker at
                        t=0 -- wall = provisioning + the slowest single cell
  --out OUT
  --bucket gs://...     GCS bucket (receipts handoff: write-local in the
                        fleet, upload-last, pull back + hash-verify)
  --image docker:...    docker mode (BYO/k8s substrates): image + machine type
                        ARE the env identity -- one of each per fleet, or
                        claims refuse. Broken under org-enforced OS Login on
                        GCP; use --source there.
  --source              setup mode (plain VM -- works under org-enforced OS
                        Login): git-archive THIS checkout's HEAD (refused
                        dirty), sha256-verified in-VM, pinned uv + frozen lock
                        build; env identity = the recorded fingerprint.
                        Exactly one of --image | --source.
  --campaign CAMPAIGN   bucket prefix (default: <protocol_id>-<launch stamp>)
  --instance-type INSTANCE_TYPE
                        default: by roster (the 2026-09-01 fleet-memory
                        ruling) -- c3-highmem-44 when the protocol's roster
                        carries ax or vizier (the profiled wall: 44 workers x
                        ~5-6 GB), else c3-standard-44 (fixed Sapphire Rapids:
                        one cpu_model across regions and the whole c3 family,
                        so mixes stay one substrate; standard allocates
                        fastest on-demand). An explicit value overrides the
                        table (ad-hoc rosters). The 2026-07-09 'OOM' was map-
                        count exhaustion (setup sysctl = the fix) -- never
                        escalate for a costumed wall
  --infra INFRA         'gcp' roams regions; 'gcp/us-central1' pins one
  --spot                spot instead of on-demand (ON-DEMAND is the ruled
                        campaign default, D9.23 -- never spot for campaigns;
                        spot + restart-from-scratch recovery suits cheap non-
                        campaign experiments)
  --isolate-adapter NAME
                        pull this adapter's cells into a dedicated trailing
                        shard with NO fleet task -- run it locally from its
                        isolation venv and merge after (hebo: bench/hebo-
                        venv.sh)
  --max-restarts MAX_RESTARTS
                        managed-jobs retries for INFRA failures (adapter
                        errors become receipt rows and never retry)
  --workers-per-shard WORKERS_PER_SHARD
                        tauopt-bench run --workers inside each shard VM
  --torch-threads TORCH_THREADS
  --max-tasks-per-worker MAX_TASKS_PER_WORKER
                        tauopt-bench run --max-tasks-per-worker inside each
                        shard VM (default 1 = recycle every cell; 0 = legacy
                        long-lived workers)
  --poll-interval POLL_INTERVAL
  --poll-timeout POLL_TIMEOUT
                        seconds before the poll loop fails LOUD (completed
                        shards stay pullable from the bucket)
  --registry-token-auth
                        private-registry pulls: mint a short-lived docker
                        login from YOUR gcloud auth into the task YAMLs
                        (Artifact Registry oauth2accesstoken; ~1h -- a shard
                        restarting after expiry fails its pull loudly;
                        relaunch re-mints)
  --reuse-attempts      allow a NON-EMPTY campaign bucket prefix -- only for
                        resuming the same code + protocol; a rerun never
                        adopts prior attempts silently
  --emit-yaml-only      write plan/ + tasks/ and stop (no cloud deps needed)
  --cost-tables {none,auto,require}
                        cell-cost priors for shard packing: auto (the default
                        -- Scott ruling 2026-07-12) = LPT + longest-first from
                        committed campaign timing tables (lpt-cost-v1, an
                        unscaled mixed-table heuristic), falling back to
                        legacy round-robin WITH the fallback recorded when a
                        checkout has no tables; require = refuse instead of
                        falling back; none = legacy round-robin, bit-exact
                        (scheduling-only either way; receipts are partition-
                        invariant, PB1; provenance -> plan/cost-model.json)
  --boot-image auto|none|projects/...
                        setup-mode VM boot image: 'auto' (default) uses the
                        baked fleet image matching the current lockhash when
                        one exists (setup self-heals to a no-op, ~10 min ->
                        ~2-3); 'none' forces the full env build; or an
                        explicit projects/<proj>/global/images/<name>

tauopt-bench fanout-bake#

Bake the GCP fleet image for the current lock (idempotent; fanout –source then auto-detects it).

usage: tauopt-bench fanout-bake [-h] [--instance-type INSTANCE_TYPE] --project
                                PROJECT [--out OUT] [--timeout TIMEOUT]

options:
  -h, --help            show this help message and exit
  --instance-type INSTANCE_TYPE
                        bake VM size (x86 only -- the bake asserts X86_64 and
                        deletes an ARM image rather than let auto-detection
                        bind it to c3 fleets); the env build is not CPU-bound
  --project PROJECT     exact GCP project; must match the effective Sky
                        workspace
  --out OUT             receipt + task-yaml directory
  --timeout TIMEOUT

tauopt-bench fanout-bake-candidate#

Bake + STAMP a sealed code-bound candidate image for an envelope’s activation (never idempotent: one mint per (envelope, commit, variant); an existing name refuses).

usage: tauopt-bench fanout-bake-candidate [-h] --envelope ENVELOPE
                                          [--variant VARIANT]
                                          [--instance-type INSTANCE_TYPE]
                                          --project PROJECT [--out OUT]
                                          [--timeout TIMEOUT]

options:
  -h, --help            show this help message and exit
  --envelope ENVELOPE   envelope id (e.g. e55r); names the image + family
  --variant VARIANT     rebake variant -- currently REFUSED for any non-empty
                        value: the warm prewarm recipe is a future reviewed
                        lane (a variant that bakes nothing extra must not
                        mint)
  --instance-type INSTANCE_TYPE
                        bake VM size (x86 only, same law as fanout-bake)
  --project PROJECT     exact GCP project; must match the effective Sky
                        workspace
  --out OUT             receipt + task-yaml directory
  --timeout TIMEOUT

tauopt-bench skyseam-emit#

Emit a self-contained sky task YAML via the I3 seam (BYO schedulers; consumable by bare sky launch <file> --dryrun with zero tauopt imports).

usage: tauopt-bench skyseam-emit [-h] --name NAME --run RUN --infra INFRA
                                 [--instance-type INSTANCE_TYPE] [--cpus CPUS]
                                 [--image projects/...|docker:...] [--env K=V]
                                 [--setup SETUP] [--num-nodes NUM_NODES]
                                 [--use-spot] [--managed] [--out OUT]

options:
  -h, --help            show this help message and exit
  --name NAME           task/cluster name (^[a-z][a-z0-9-]*$)
  --run RUN             run command
  --infra INFRA         repeatable; ORDER = failover preference (gcp/us-
                        central1, gcp/us-east1/us-east1-b, k8s, ssh/mynode)
  --instance-type INSTANCE_TYPE
                        provider-shape sizing (gcp tiers)
  --cpus CPUS           cpu sizing for k8s/local/ssh tiers (e.g. 0.5, 4+)
  --image projects/...|docker:...
  --env K=V
  --setup SETUP
  --num-nodes NUM_NODES
  --use-spot            user tier only (the sealed tier's never-spot law lives
                        upstream of the seam)
  --managed             stamp the managed-tier job_recovery default
                        (EAGER_NEXT_REGION)
  --out OUT             output path; '-' = stdout

tauopt-bench merge#

Merge shard receipts (one protocol only).

usage: tauopt-bench merge [-h] --inputs INPUTS [INPUTS ...] --out OUT
                          [--protocol PROTOCOL]

options:
  -h, --help            show this help message and exit
  --inputs INPUTS [INPUTS ...]
                        receipt files or run directories
  --out OUT
  --protocol PROTOCOL   optional: verify the merge is EXACTLY this protocol's
                        cell set

tauopt-bench canonical#

Print canonical receipt rows (sorted; volatile fields stripped).

usage: tauopt-bench canonical [-h] path

positional arguments:
  path        receipts.jsonl or a run directory

options:
  -h, --help  show this help message and exit

tauopt-bench report#

Render receipts into the campaign report (md + csv tables).

usage: tauopt-bench report [-h] --receipts RECEIPTS --out OUT [--claims]
                           [--companion-receipts COMPANION_RECEIPTS]

options:
  -h, --help            show this help message and exit
  --receipts RECEIPTS   receipts.jsonl or a run directory
  --out OUT             report output directory
  --claims              claims mode: require a frozen preset, a complete grid,
                        and zero error rows
  --companion-receipts COMPANION_RECEIPTS
                        receipts of the companion campaign carrying the strong
                        baselines (required for the s8-floor audit on presets
                        with a declared companion)