PreOptimizationTimes runtime baseline — imaging + interferometer + datacube (local CPU)#62
Merged
Merged
Conversation
- sweep.py CELLS gains the campaign instrument axis (class, model, instruments): per-instrument runs with --instrument passthrough and 3-level output dirs (aggregate.py already reads them); --only/--skip match class/model or class/model/instrument - scripts/build_baseline.py: snapshot runtime comparison.json trees into results/baselines/<Name>/ + rendered one-page <Name>.md (the PreOptimizationTimes convention from the phase-1 design note); the dashboard baseline column activates automatically Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…edoing completed runs (#56)
…62GB dense-mapping gather, confirmed by first pass)
User-directed campaign policy: a config whose profiling run exceeds the
per-run wall-clock cap, or whose per-call cost exceeds ~1 min, is not a
CPU-viable configuration — the classification is the result and the full
timing belongs to the A100 rows.
- sweep.py --per-run-timeout: kill + write <cell>_<config>.unusable.json
marker (honoured by --skip-existing)
- aggregate.py folds markers into comparison.json ({"cpu_unusable": true})
- dashboard renders GPU-only for markers and "(unusable)" for measured
per-call > 60 s on local backends
- retroactive markers: interferometer delaunay alma fp64 (OOM) and
alma_high fp64+mp (killed under policy)
- policy recorded in results/notes/design_lock_in.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
#56) Two campaign-flushed bugs from the phase-2 conversion: - check_pinned assumed scalar `got`; the batched vmap array crashed float() whenever a pin existed (all six pinned HST sparse runs died at the final check — after their JSONs were written, so no data lost). Now assert_allclose-semantics over the array, reporting the worst element. - aggregate.py matched bare config stems but per-cell scripts have written cell-prefixed names (mge_local_cpu_fp64.json) since #44 — the phase-2 synthetic test wrote bare names and masked it. Discovery and aggregation now strip the cell prefix (pre-#44 bare shape still accepted); regression test added (26/26). Verified live: aggregate now emits real comparison tables (imaging/mge/hst: fp64 117.7ms · mp 164.3ms · sparse variants). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ma unusable-classified (#56) Freeze partial PreOptimizationTimes runtime matrix; laptop-GPU + HPC-A100 legs deferred to a later profiling-agent re-run. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Aggregate all swept likelihood_runtime cells into per-cell comparison.json (12 cells: imaging mge/pixelization/delaunay × ao/hst/jwst, interferometer × sma/alma, datacube delaunay sma), snapshot into results/baselines/PreOptimizationTimes/, and refresh the README dashboards. This is the pre-optimization runtime baseline for imaging + interferometer + datacube on local CPU (fp64/mp, dense + sparse). Laptop-GPU and HPC-A100 legs are deferred to a later profiling-agent re-run, which will extend these same cells; the baseline is refreshable in place. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This was referenced Jul 11, 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.
Closes the phase-3
likelihood_runtimeleg of thepolish.mdPreOptimizationTimes campaign (#56) at the "done enough" point directed by the user — a later profiling-agent re-run will extend these same cells with laptop-GPU and HPC-A100 legs.What landed
sweep.pyinstrument axis +--skip-existingresume,build_baseline.pysnapshot tool, CPU-usability timeout-and-classify policy, aggregate fixes (array-safecheck_pinned, cell-prefixed config stems), and dropping the inherently-blocked mge alma+ dense-mapping cells (62GB gather).comparison.json(12 cells), snapshotted intoresults/baselines/PreOptimizationTimes/, README dashboards refreshed.Baseline coverage (local CPU, fp64/mp, dense + sparse)
Deferred (explicit, for the next re-run)
datacube/delaunay/smaheadline renders—(raw JSON lacks the headline field the dashboard reads) — cosmetic, refreshes on re-aggregate.This unblocks the dashboard leg of preopt-breakdown-dashboard (#59), which was gated on this runtime baseline.
🤖 Generated with Claude Code