Skip to content

Timings Report Notebook

notebooks/generic/timings_report_mo.py is a marimo report for export timing sidecars. It scans exports/**/timings.json at runtime, splits rows by the first export path component, and displays separate tables for matrix and gridworlds.

Each row represents one timings.json file. The export label is the environment name plus any variant path below it, for example congestion/6 or pursuit/3. Stage columns are discovered from the JSON files and ordered with the common training, world-model, and opponent-model stages first. Values are rendered as hours (runs). Indexed stages start at the last run_idx == 0, and single-shot stages use the latest run entry.

The report also loads a sibling timings_hardware.json when present. Hardware IDs are collected from the same current run batch used for duration totals, then resolved into:

  • allocated RAM, including whether it came from cgroup or scheduler detection;
  • affinity-accessible CPU model, physical cores, and logical threads;
  • visible GPU model, VRAM, and peak memory bandwidth.

When a timing entry has no resolvable hardware sidecar, the report labels its hardware as unavailable.

True Shielding timings are intentionally filtered out by stage key before the tables are built. The filter currently excludes stage names containing true_shield or true shielding, which covers ippo_true_shielded and ippo_true_shielded_setup while preserving learned shielding timings such as ippo_shielded.