Skip to content

maint: design lock-in + results/dashboard groundwork (polish phase 1) #52

Description

@Jammy2211

Overview

autolens_profiling is mature and well-separated, and is about to become the home of the PreOptimizationTimes baseline — the last full profiling before the optimization push. Before those runs (phases 2–4), this task does one final holistic design review to lock the core design in for future extension (more datasets, instruments, packages), and puts the results-presentation story in place so campaign results land as browsable .md/.json on GitHub.

Phase 1 of 4 of PyAutoMind task maintenance/autolens_profiling/polish.md. Autonomy: running under --auto at effective level supervised (checkpoint-and-continue per PyAutoBrain/AUTONOMY.md) — plan below is the approved plan of record.

Plan

  • Deep design review of the package layout (instruments, likelihood, likelihood_runtime, likelihood_breakdown, vram, latent, searches, simulators, quick_update, hpc) and the shared _profile_cli.py helper; propose and apply small lock-in refactors only where they make extension cheaper — no behaviour-changing rewrites.
  • Define the PreOptimizationTimes results convention: versioned .json (existing) plus a rendered .md view per package, so every result is readable on GitHub without opening JSON.
  • Audit per-package docs: add missing READMEs (likelihood/, quick_update/, hpc/, scripts/), fix stale content (roadmap still points at retired PyAutoPrompt registry; results/README.md misses the runtime/breakdown/notes/quick_update sections).
  • Design the top-level README dashboard and update scripts/build_readme.py (queued path-update follow-up since the likelihood split; CI already checks its idempotence) so phases 2–4 slot results straight in.
  • Decide the home of campaign artifacts: runtime results currently aggregate from autolens_workspace_developer/jax_profiling/ — settle whether PreOptimizationTimes lives wholly in this repo.
Detailed implementation plan

Affected Repositories

  • autolens_profiling (primary, only)

Branch Survey

Repository Current Branch Dirty?
./autolens_profiling main clean

Suggested branch: feature/profiling-polish-design
Work Classification: Workspace
Worktree root: ~/Code/PyAutoLabs-wt/profiling-polish-design/

Implementation Steps

  1. Survey every package's script inventory + _profile_cli.py/sweep.py interfaces; write a short design note (kept in-repo, e.g. results/notes/) recording what is locked in and any agreed renames/moves.
  2. Apply approved lock-in refactors (small, ruff-clean, smoke-import safe under AUTOLENS_PROFILING_SMOKE=1).
  3. Add .md result rendering to the results pipeline (JSON → per-package markdown table), tagged PreOptimizationTimes.
  4. Add/repair per-package READMEs and results/README.md sections; fix stale roadmap/registry references in the top-level README.
  5. Update scripts/build_readme.py to the post-split paths and design the dashboard section (populated in phase 4); keep --check green in lint.yml.

Key Files

  • _profile_cli.py — shared sweep flags / output-path resolver; the extension surface to lock in
  • likelihood_runtime/sweep.py, likelihood_runtime/aggregate.py — campaign driver + cross-repo aggregation to settle
  • scripts/build_readme.py — retired dashboard generator, queued for path update; CI runs --check
  • results/README.md, per-package README.mds — conventions + missing docs

Original Prompt

Click to expand starting prompt

polish phase 1 — holistic design review and lock-in

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

Phase 1 of 4 of polish.md (see parent for full intent). No profiling runs in
this phase — design and results-presentation groundwork only.

autolens_profiling is now a mature project with good separation into packages
(instruments, latent, likelihood_runtime, likelihood_breakdown, vram, …). Before
the PreOptimizationTimes baseline campaign (phases 2–4), do deep research on the
project and have one last think about ways to improve it: redesigns that make it
more concise and clearer. We will be extending it with more datasets, packages
and instruments, so this is the opportunity to lock the core design in well.

Also scan the repo and make sure that when profiling results come in they are
saved as .md or .json files and clearly displayed in per-package GitHub
.md files for browsing. Design (but do not yet populate) a high-level results
dashboard on the GitHub README. The baseline result set will be named
PreOptimizationTimes — the comparison base for the optimization work that
follows.

Out of scope: any profiling runs (phases 2–4); searches; point_source; laptop
GPU (user runs those in a follow-up); the future PyAutoBrain profiling agent
idea recorded in the parent prompt.

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