Skip to content

feat: explicit Bilinear/RTU rectangular-mesh support in the profiling cells - #155

Merged
Jammy2211 merged 2 commits into
mainfrom
feature/rectangular-bilinear-rtu-mesh-split
Aug 21, 2026
Merged

feat: explicit Bilinear/RTU rectangular-mesh support in the profiling cells#155
Jammy2211 merged 2 commits into
mainfrom
feature/rectangular-bilinear-rtu-mesh-split

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

Downstream of the PyAutoArray rectangular mesh split (PyAutoLabs/PyAutoArray#462, merged; task PyAutoLabs/PyAutoArray#461) and user-requested: the profiling cells support both rectangular mesh families explicitly. The old RectangularAdaptDensity/AdaptImage names no longer exist in autoarray, so main's cells were broken against the new API regardless — this PR both repairs and parameterizes them.

  • _profile_cli.py gains a --rect-mesh {bilinear,rtu} sweep flag (default bilinear — the new workspace default and CPU-campaign target; rtu reproduces the pre-split kernel-CDF behaviour, so pre-split recorded results remain comparable) plus a rect_mesh_classes() resolver. _rtu is appended to result basenames so the two families' JSONs never clobber each other.
  • Six rectangular cells read the flag and embed "rect_mesh" in their result JSON: imaging/likelihood_runtime/pixelization{,_numba}.py, imaging/likelihood_breakdown/pixelization{,_numba}.py, interferometer/likelihood_runtime/pixelization.py, imaging/parallel_scaling/pixelization_numba.py.
  • Sampler benchmark surfaces (misc/searches/_setup.py, the nautilus / multi_start_prodigy pixelization cells): pure rename to RectangularRTU* — gradient-based searches need the kernel-CDF mesh and the recorded benchmark numbers (truth bars) stay valid unchanged.
  • Workspace-mirroring scripts (pipeline_resume, simulator comments) and docs follow the Bilinear default; OPTIMIZATION_NOTES.md marks its recorded numbers as pre-split kernel-CDF (RTU).

This also unblocks the Phase 14 versioned Bilinear measurement (see the adjudication comment on #153): python scripts/imaging/likelihood_runtime/pixelization_numba.py measures the Bilinear default, --rect-mesh rtu the kernel-CDF baseline, with disjoint result files.

Merge-order note: the in-flight #152 (feature/numba-cpu-likelihood-profiling) touches sibling numba cells; whichever merges second may need a trivial rename/flag reconciliation in pixelization_numba.py.

Test Plan

  • All changed scripts compile.
  • parse_profile_cli / rect_mesh_classes resolve both families and produce disjoint output paths (..._rtu.json) — exercised against merged PyAutoArray main.
  • Versioned Bilinear-vs-RTU CPU measurement (the Phase 14 record) — next profiling run.

Generated by Claude Code

claude added 2 commits August 21, 2026 18:44
… cells

Downstream of PyAutoArray#462 (rectangular Bilinear/RTU mesh split, task
PyAutoArray#461; user-requested explicit both-mesh support):

- _profile_cli.py: new --rect-mesh {bilinear,rtu} sweep flag (default
  bilinear, the workspace default and CPU-campaign target; rtu reproduces
  the pre-split kernel-CDF behaviour) + rect_mesh_classes() resolver;
  '_rtu' appended to result basenames so the families' JSONs stay disjoint.
- Six rectangular cells read the flag and embed "rect_mesh" in their result
  JSON: imaging/likelihood_runtime/pixelization{,_numba}.py,
  imaging/likelihood_breakdown/pixelization{,_numba}.py,
  interferometer/likelihood_runtime/pixelization.py,
  imaging/parallel_scaling/pixelization_numba.py (mesh_label also carries
  the family).
- Sampler benchmark surfaces (misc/searches/_setup.py, imaging/searches
  nautilus + multi_start_prodigy cells): pure rename to RectangularRTU* —
  gradient-based searches need the kernel-CDF mesh and the recorded
  benchmark numbers stay valid.
- Workspace-mirroring scripts (pipeline_resume, simulator comments) and
  docs follow the Bilinear default; OPTIMIZATION_NOTES marks its recorded
  numbers as pre-split kernel-CDF (RTU).

Validated: all changed scripts compile; parse_profile_cli/rect_mesh_classes
resolve both families and produce disjoint output paths.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtMqU3JfmyJh8GvB7jT4Et
ruff check --fix (I001 import sorting in the four cells that gained the
rect_mesh_classes import) and ruff format on the touched files; all lint
legs (ruff check, ruff format --check, build_readme.py --check) pass
locally.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtMqU3JfmyJh8GvB7jT4Et
@Jammy2211
Jammy2211 merged commit d746442 into main Aug 21, 2026
1 check passed
Jammy2211 pushed a commit that referenced this pull request Aug 21, 2026
…anced, both explicit

Flip the Phase 14 status row and section from awaiting-adjudication to
adjudicated+shipped (PyAutoArray#461/#462, workspace PRs, PR #155) and
append the decision-log entry. The versioned Bilinear-vs-RTU CPU
measurement stays the recorded outstanding tail, tracked on #153.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtMqU3JfmyJh8GvB7jT4Et
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants