mlpstorage status: per-result readiness table, post-run recap, runs list SUBMIT token (status-and-submit PR 2) - #880
Merged
Conversation
…BMIT token (RED; status-and-submit PR 2)
…ist SUBMIT token (status-and-submit PR 2) New top-level verb over an initialized results-dir: one row per result (Rules.md 1.3) with RUNS n/m from the edition's runs_per_result, the SUBMIT token (short > invalid > paperwork > ready, - for whatif), a NOTE, a per-system paperwork footer and a Next: line; --runs expands run rows; filters mirror runs list plus --submit; --json. Always exits 0, not in history. run_benchmark prints the same table for the result a run just joined, after metadata is written (stdout, run only, not under --quiet, never changes the exit code). runs list gains a SUBMIT column (ok/failed/running/invalid/extra, - for whatif and non-run leaves, ? when the evaluator fails) and a JSON key. readiness: leaf_key / result_for_leaf / run_tokens; failed and invalid runs sharing a reason collapse into one NOTE clause with one rm hint. --help_all: status synopsis, tree entry, STATUS block (parity test maps the leaf); README and CLAUDE.md command tables.
|
MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅ |
This was referenced Sep 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR 2 of the
status/submitseries (design agreed 2026-09-23; PR 1 = #879). Adds the habitual per-result view of a results-dir, prints it after everyrun, and puts the per-run readiness token onruns list.mlpstorage statusNew top-level verb over an initialized results-dir (resolved like
runs:--results-dir/-rd>MLPSTORAGE_RESULTS_DIR> themlpstorage initdefault). One row per result (Rules.md 1.3), scored bymlpstorage_py/readiness.pyfrom PR 1, which runs the checker behindmlpstorage validatein-process.n/m,mfrom the edition'schecker.runs_per_result(never hard-coded); checkpointing counts phases.short>invalid>paperwork>ready; whatif results sit in their own section and show-, and never count toward "n of m results ready".validate.status --runswhen a result is short or invalid,validate <dir>when there are tree problems or everything is ready (PR 3 swaps that last one forsubmit --dry-run), "fill in the paperwork" otherwise.--runsexpands each result into its run rows (ID STATUS STARTED COUNTED NOTE, second indented header line). Paperwork never appears at run level.runs list(--mode,--benchmark,--model,--systemname/-sn) plus--submit {short,invalid,paperwork,ready};--jsonprints the readinessto_dict()with the selection applied.submit --dry-runwill be). Not recorded in history, same initialized-tree refusal asruns.Printed after every
runrun_benchmarkprints the same table, restricted to the result the run just joined, afterbenchmark.run()has returned and the leaf's metadata is written, so it never interleaves with DLIO output (the BACKLOG B-02 lesson). Only forrun(not datagen/datasize/configview), not under--quiet, and a failure to score the tree is a single warning that never changes the run's exit code. Output is stdout, likeruns list; the logger (stderr) keeps the results-dir line and the recap.runs listGains a
SUBMITcolumn right afterSTATUSwith the per-run token from the same evaluator:ok/failed/running/invalid/extra;-for whatif runs (never packaged) and non-run leaves (datagen/datasize have no result);?on every row, with one warning, when the evaluator fails, so the listingrmacts on stays usable. JSON rows gain"submit"(nullwhere the table shows-for a non-run leaf,"-"for whatif). The--status {complete,failed,incomplete}filter is unchanged: it stays the ledger state.Readiness tweaks (
mlpstorage_py/readiness.py)leaf_key(results_dir, path),result_for_leaf(sub, leaf),run_tokens(sub);evaluate_resultnow composes the first two.runs rmhint (runs 3, 4, 5 invalid: [2.1.19] ...; remove or redo them (mlpstorage runs rm 3 4 5)). Single-run wording is byte-identical to PR 1.Help surface
--help_allgains thestatussynopsis line, tree entry and aSTATUSblock, andRUNS_LISTdocuments the new column; the parity suite maps the new leaf. This landed here rather than in PR 4 becausetest_help_all_parity.pyrefuses a parser leaf without a block, so PR 4 shrinks to ManPage.md.CLAUDE.mdand the README command table get one line each.Tests
tests/unit/test_status_command.py(56): parser, table (header, columns, tokens, NOTE, whatif section, open division, checkpointing phases, vdb without accelerator, tree problems, warnings, empty tree),--runs, filters,--json, gates, post-run recap (printed forrun, failed run keeps its exit code, silent under--quietand for other commands, evaluator failure is a warning only, no results-dir is a no-op),runs listcolumn and JSON,run_tokens/leaf_key, note grouping, help surface. TDD: RED commit first, then GREEN.test_help_behavior.pyrootnext:fragments updated for the new verb.All four CI suites green locally. The validator itself is untouched (
readinessonly reads its findings), so no validator-diff on the frozen v3.0 tree was run for this PR.Calls worth a look
runs listcolumn nameSUBMIT(per-run token) alongside the per-resultSUBMITinstatus: same word, one level apart. Alternatives considered: replacing the existing STATUS values (would change what--statusfilters) or a longer header.mlpstorage.log;mlpstorage statusreproduces it on demand.num_checkpoints_write/readcounts asextra(supplies no phase). That is PR 1's rule surfacing inruns list; the DoD fixture shows it.