Skip to content

maint: PreOptimizationTimes breakdown + README dashboard (polish 4) #59

Description

@Jammy2211

Overview

Phase 4 of 4 of the autolens_profiling polish series (parent: polish.md, phased 2026-07-08). Completes the PreOptimizationTimes baseline campaign with two deliverables: per-step likelihood_breakdown decompositions for one representative config per dataset kind, and the README dashboard designed in phase 1, populated with all key PreOptimizationTimes results. This locks in the final pre-optimization reference numbers before speed-up work begins.

Blocked by: phase 3 (profiling-preopt-campaign, #56) — needs its PreOptimizationTimes runtime baseline tagged and its autolens_profiling worktree claim released. Queued in PyAutoMind/planned.md until then.

Plan

  • Wait for phase 3 to ship (baseline tagged, campaign branch merged, claim released).
  • Run likelihood_breakdown per-step decompositions for HST (imaging), Alma_high (interferometer), and datacube on laptop CPU.
  • Dispatch the same breakdown runs on HPC CPU and A100 (+ mixed precision where supported), reusing phase 3's infeasibility map to pre-scope cells.
  • Save results per the phase-1 conventions, tagged PreOptimizationTimes (replacing the stale v2026.5.29.4 breakdown rows).
  • Populate the README dashboard designed in phase 1 with all key PreOptimizationTimes results (runtime + breakdown), linking down into the per-package .md result pages.
  • Verify dashboard values against the baseline JSONs; ship via ship_workspace.
Detailed implementation plan

Affected Repositories

  • autolens_profiling (primary)

Branch Survey

Repository Current Branch Dirty?
./autolens_profiling main untracked results only (searches/, simulators/)

Claim conflict at survey time: autolens_profiling claimed by profiling-preopt-campaign (feature/profiling-preopt-campaign, ~/Code/PyAutoLabs-wt/profiling-preopt-campaign) — hard block until #56 ships.

Suggested branch: feature/preopt-breakdown-dashboard
Worktree root: ~/Code/PyAutoLabs-wt/preopt-breakdown-dashboard/ (created by /start_workspace once unblocked)
Classification: Workspace

Implementation Steps

  1. Confirm phase 3 shipped: PreOptimizationTimes runtime baseline exists (build_baseline.py --name PreOptimizationTimes output), campaign branch merged, claim released.
  2. Run breakdown sweeps in likelihood_breakdown/{imaging,interferometer,datacube}/ — one representative config each: HST (imaging), Alma_high (interferometer), datacube. Laptop CPU first.
  3. Dispatch HPC CPU + A100 legs via hpc/ scripts when RAL is available; A100 mixed precision only where source supports it. Pre-scope with phase 3's infeasibility map (documented on maint: PreOptimizationTimes campaign — local-CPU leg (polish phase 3) #56: mge alma+ inherently blocked; ao mesh models laptop-infeasible; jvla simulation OOM).
  4. Save per-step JSON + .md under results/breakdown/ per the phase-1 conventions; tag the snapshot PreOptimizationTimes.
  5. Extend build_readme.py (phase 3 tooling) to fill the README <!-- BEGIN auto-table:headline --> block from the PreOptimizationTimes baseline — the runtime table (currently "No data yet") plus refreshed breakdown table — with links to results/{runtime,breakdown}/**/*.md.
  6. Validation: rebuild README from baseline JSONs, check link integrity, and cross-check breakdown step-sums against phase-3 runtime totals for the same cells.

Key Files

  • likelihood_breakdown/{imaging,interferometer,datacube}/ — per-step decomposition runners
  • results/breakdown/ — output layout per phase-1 conventions
  • results/runtime/ — phase-3 runtime results the dashboard also surfaces
  • README.md — auto-table:headline dashboard block
  • build_readme.py / build_baseline.py — phase-3 aggregation + snapshot tooling (on the campaign branch until merged)
  • hpc/ — RAL dispatch scripts for HPC CPU / A100 legs

Out of Scope

  • Searches; point_source; laptop GPU (user follow-up prompt); the future PyAutoBrain profiling agent (separate feature/pyautobrain/ prompt).

Original Prompt

Click to expand starting prompt

polish phase 4 — likelihood breakdown and README dashboard

Type: maintenance
Target: autolens_profiling
Difficulty: medium
Autonomy: supervised
Priority: normal
Status: formalised

Phase 4 of 4 of polish.md (see parent for full intent). Depends on phase 3
(PreOptimizationTimes runtime results in).

Two deliverables:

  1. likelihood_breakdown — per-step decomposition for one representative
    config per dataset kind: HST for imaging, Alma_high for interferometer, and
    datacube. Same platforms as phase 3 (laptop CPU, HPC CPU, HPC A100 + mixed
    precision where supported); results saved per the phase-1 conventions and
    tagged PreOptimizationTimes.

  2. README dashboard — populate the high-level dashboard designed in phase 1
    on the GitHub README, showing all key PreOptimizationTimes results at a
    glance, with links down into the per-package .md result pages.

Out of scope: searches; point_source; laptop GPU (user follow-up); the future
PyAutoBrain profiling agent (separate feature/pyautobrain/ prompt when its
time comes).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions