Empirical repro: stop reported success 8 s before labeled containers were
actually gone on 3/4 nodes (graceful teardown window) — the back-to-back
serve then saw three nodes occupied and bailed. Fixed in stop.rs
(remote command now waits for labeled containers gone in ANY state,
explicitly rms stragglers, then verifies running-only) and in
orchestrate (up to 3 re-probes on the short-free verdict). End-to-end
verified: stop→serve back-to-back, zero occupied errors. 354 tests green.
TORCHINDUCTOR_CACHE_DIR/TRITON_CACHE_DIR env + jit-121f/triton mount
added to the vLLM MiMo lane (inductor was writing to ephemeral
/tmp/torchinductor_root, so the persistent vllm compile cache dangled at
lost cubins → TritonBundler warnings every boot). One-time purge of the stale
host-side torch_compile_cache (~100 MB/node) done. Warnings still printed
this boot (warm-memory reuse across the running container); next restart
should be clean.
mimo26-flash-mopd-4x-vllm serving on all 4 nodes (sparkring serve
contract, benched 170/184 = 92/100 this morning; cache work since then is
JIT-only). API http://192.168.88.14:30000, model mimo-v2.6-flash.
Open item for later: c2 long-context throughput collapse (5.6 t/s @131K,
2.1 @256K) — noted below, not touched.
Operator: SparkRing is the fast line (nightly comparison dropped), MOPD only from now on (RL retired — training artifacts), and measure c1+c2 at depth.
mimo26-flash-mopd-4x-sparkring (installer image c977a2d2, their qualified
tp4 contract) — image pushed to all 4 dgx58 nodes (sync rewrite exercised:
digest-ref RepoDigest re-attach after save/load, parallel fan-out 206 s),
cold boot 26 min, warm restart ~14 min. Campaign
2026-09-29_160255_sparkring-honest-baseline: 165/184 (90/100) plus the
first honest c1/c2 depth curve: c2 ≥ c1 everywhere (72.2 @d0 → 44.6 @256K).
The 13.7/5.7/2.1 t/s c2 depth rows were never the engine: tool-eval-bench
default-invokes llama-benchy with --no-cache and NO
--enable-prefix-caching, so the runner concatenates context+prompt into a
single ~67K request and serializes two cold prefills through the chunked
scheduler (wire capture: one stream trickles 19 s at 2.5 tok/s while its
partner waits; engine windows read prompt 6759 t/s + generation 0.8 t/s).
One flag flips c2@65K 13.7 → 52.1 t/s. sm121 bench now passes it for the
main perf phase and the depth suite (d5a2032); all historical c2 depth
numbers are void. Full story + upstream-issue draft:
specs/tech-architecture/sparkring-mimo-lanes.md.
Morning note "c2 long-context throughput collapse (5.6 @131K, 2.1 @256K)" is
superseded by this section.
Also fixed along the way (kept for reuse): sync digest-ref probe/attach,
kernel-config ↔ --no-enable-flashinfer-autotune mutual exclusion,
MML A/B negative (524288 vs 262144 → bit-identical), VLLM_LOGGING_LEVEL
debug session, and the /tmp/qwen_monitor.py zombie (Sep-26 control probes
→ 404 spam on dgx5) killed.
mimo26-flash-mopd-2x-sparkring → cluster 2nodes-dac: their qualified
direct-pair-2 tp2 profile transcribed; f1 ports carry the DAC 100.x
subnet and their IPv4 RoCE GID is index 3 (verified on dgx1);
B12X_ROCE_PAIR_PATHS=2 kept, ring keys still dropped.mimo26-pro-mopd-8x-sparkring → cluster 8nodes-switch: Pro-MOPD
(573.5 GB, arch/processor verified byte-compatible with their qualified
overrides, dflash/ draft present) on the tp8 contract — needs fleet
coordination + image sync to dgx1-4.
RL recipes stay as history only — operator: RL no longer used.