Skip to content

docs: Aris route-gate phase 2 — routing table under the cost model + log-det parity (#419) - #420

Merged
Jammy2211 merged 2 commits into
mainfrom
feature/interferometer-route-gate-phase2
Oct 15, 2026
Merged

Jammy2211 merged 2 commits into
mainfrom
feature/interferometer-route-gate-phase2

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

Phase 2 (workspace record) of interferometer-numba-route-gate. The Aris routing table on both masks, re-measured under PyAutoArray#632's default cost model (PyAutoArray main 17caf228), plus the campaign's owed numba-vs-JAX log_det_regularization_matrix_term after-measurement following PyAutoArray#631.

  • Routing. Under default settings the factory picks the faster measured arm in all six cells. The 512 timing pairs are among the cost model's calibration points (in-sample); the 125 FFT arm was only timed under JAX jit, used as a proxy.
    • 125×125 (extent 83²): direct_conv at 1,405 / 2,947 / 5,526 vertices.
    • 512×512 (extent 341²): FFT at 1,459 vertices, direct_conv at 2,577 and 5,746.
    • The old gate of 60 misrouted the 2,577 cell (nnz/col 106 → FFT, but direct_conv measured 1.29× faster).
    • The cost model's extent-dependent modelled crossover (~309 nnz/col at 83², ~166 at 341²) answers the numba kill-gate question.
  • Log-det parity. numba vs JAX differ by ≤ 4.4e-8 at every cell.
    • The 125 original vector went from 2443.22 / 2561.98 to 2468.4463180 on both backends.
  • Timings. s/call is carried from the prior laptop measurement (PROGRESS3/PROGRESS4) and is not re-timed.

Campaign: PyAutoPulse#62, task interferometer_large_mask_aris. Library PRs: PyAutoArray#628 / #632 (17caf228), #627 / #631 (0377eeaa), #626 / #630 (7cc71238).

Scripts Changed

  • None. This is a results note and a wiki update, with no script changes:
    • results/notes/interferometer_route_gate_aris_2026_10.md (new): the six-cell table, the 125 original-vector pair before and after, settings, SHA and links.
    • wiki/campaigns/interferometer_likelihood.md: the verdict line (fixed gate superseded by the cost model), the ledger and library-PR lines, a new phase row, the gate caveat and a 2026-10-15 journal entry.
  • The three scripts that set interferometer_numba_nnz_per_source_max explicitly are unchanged.

Upstream PR

PyAutoLabs/PyAutoArray#632 (MERGED 17caf228; also #631, #630 merged)

Test Plan

  • ruff check ., ruff format --check . (no .py added)
  • check_wiki.py --check OK (28 campaign files, 52 ledgers linked); check_results_layout.py --check OK; build_readme.py --check, build_dashboard.py --check, build_catalogue.py --check, list_timing_assertions.py --check, check_submits.py --check all current
  • Measurements: 6 cells, one process each, default settings, laptop, 9 GB RSS watchdog never fired (peak 1.65–3.04 GB)

Validation checklist (--auto run — plan was not pre-approved)

  • Effective level: supervised (header: supervised, cap: feature small → safe); decide-and-flag at ship
  • Plan: on the issue (perf: re-measure Aris interferometer routing table under the cost-model gate #419), written at start, unmodified since
  • Gate: tests n/a (autolens_profiling has no pytest suite; its PR gate is lint.yml, all of whose checks pass locally, listed above) · smoke n/a (lint.yml's smoke imports scripts; this diff touches no script, only markdown under results/notes and wiki) · review CLEAN (independent Opus reviewer subagent: first pass FINDINGS F1 medium — 512 timing pairs are the cost model's calibration points, so 6/6 is partly in-sample; F2 low-medium — 'no fixed constant serves both masks' was unverified; both resolved in 3237286 by scoping the wording; re-review CLEAN with per-claim dispositions; F3 low, out of scope — the decision-matrix note may still describe gate 60 as current, follow-up) · Heart RED, development-only override (below)
  • Human: plan sound in hindsight?
  • Human: diff matches plan (no scope creep)?
  • Human: merge, amend, or reject — then log the outcome

Decision taken

  • Decision: s/call in the table is carried from the prior laptop measurement (Aris PROGRESS3/PROGRESS4, PyAutoArray ccddfba6), clearly marked "prior measurement, laptop, not re-timed". Only routing, predicted t_fft/t_dc and the log-det pair were measured fresh at 17caf228. This was the human's compute decision ("Laptop, routing + log-det only").
  • Rejected alternative: re-time all six cells on the laptop. It was shared (load 2–14 today), and the bake-off documents ~2.5× clock drift, so fresh timings would not be cleaner than the paired ones already recorded.
  • Revert: delete results/notes/interferometer_route_gate_aris_2026_10.md and revert the wiki hunk.

Heart RED development override

Heart was RED at launch and at ship (2026-10-15): Heart: RED — Release RED; monitoring RED · 10/100 · 415 unresolved; [red] release validation FAILED (stage integrate); [red] PyAutoHands/workflows/Python Version Matrix: failure; [red] PyAutoHeart/workflows/Release Integrate: failure; [red] PyAutoMind/workflows/Lifecycle Drift: failure; [red] PyAutoArray/Tests: red; [red] autofit_workspace_test/Smoke Tests: red; [red] autogalaxy_workspace_test/Smoke Tests: red; [red] autolens_workspace_test/Smoke Tests: red; [red] Release validation: NOT release_ready — v2026.10.15.1.dev81701; [red] Worktree drift: 5 orphan / 0 missing / 4 dirty; [red] autolens_inference: red; [red] autolens_profiling: red; [red] euclid_strong_lens_modeling_pipeline: red (full list on #419).
The live human authorized the development-only override in session 3e3dea38 (AskUserQuestion answer "Yes, override for both (Recommended)"). Permitted: commit, push, PR-open behind the autonomous-ship gate. Merge stays a separate human act (/prm). Heart remains RED for release purposes.

Closes #419

🤖 Generated with Claude Code

Jammy2211 and others added 2 commits October 15, 2026 23:13
Re-measure the Aris 125x125 / 512x512 routing table with PyAutoArray#632's
default cost model (17caf228): route, nnz/col, predicted t_fft/t_dc per cell,
plus the owed numba-vs-JAX log_det_regularization_matrix_term after #631.
Timings carried from the prior laptop measurement, not re-timed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…modelled crossover) — review findings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.

perf: re-measure Aris interferometer routing table under the cost-model gate

1 participant