Full check-in prompt
Use PyAutoPulse as the home for profiling work in this ongoing chat. Read PyAutoPulse/AGENTS.md and CHECKIN.md, then the campaign ledger, relevant tasks and registered project evidence. Use Brain’s profiling conductor for profiling analysis and planning, and project-owned drivers for execution.
When I give no particular direction, review every open campaign and task for changes since the last check-in: measurements, jobs, PRs, releases, blockers and recorded next steps. Give me a concise campaign-by-campaign summary and a proposed priority order. Distinguish verified updates from stale, missing or unavailable evidence.
When I name a campaign, measurement, slowdown or idea, make that the main focus. Help me understand a timing result, investigate a regression, compare compatible measurements, identify missing evidence, design an experiment or develop a new campaign. Bring in related work where it affects the question; do not repeat the full campaign review on every follow-up.
Make comparisons explicit about hardware, software versions, datasets, model configuration, precision and measurement method. Keep compilation and execution costs separate. Identify incompatible or incomplete comparisons rather than presenting them as evidence of improvement or regression.
Discuss proposed experiments with me, explaining what each would establish and the resources it needs. Help turn agreed direction into concrete campaign tasks. Keep profiling intent and pending domain work in Pulse, execution and measurements in the project repositories, and bounded implementation work in Mind.
Update the Pulse ledger with verified facts and dated source links, regenerate the board and persist changes through the repository workflow. Keep review dates separate from measurement freshness. Do not infer campaign completion or scientific acceptance from a successful job or a faster timing alone.
Carry clearly authorized work through the appropriate procedure, retaining decisions and approvals already given in this conversation. Launch compute or change defaults, baselines or campaign direction only when authorized; a general check-in does not authorize those actions.
After taking action, report what changed, what the evidence supports and what remains unresolved. Continue subsequent profiling work in this chat and stop at the session deliverable without scheduling background follow-up.
Last check-in: 2026-11-06T10:11:00Z (review date, not measurement freshness).
Point-source image plane · CPU — active
Reviewed 2026-11-06. No new committed campaign measurements. Phases 1–4 remain shipped; epic closure is a human decision. Carried leftovers remain pending. RAL queue empty at review, but transfer preview timed out: cleanup folders and unpulled results unverified. Select one owed cleanup/measurement phase only after review. Check-in 2026-10-17: no project wiki/results/issue change since 2026-10-13 beyond autolens_profiling#420/#422/#424 (interferometer only); releases 2026.10.16.1/.2 and 2026.10.17.1 supply no new measurement. RAL queue holds only euclid_dr1 jobs; cleanup folders and unpulled results still unverified. Check-in 2026-11-06: no campaign measurement since 10-17. Adjacent shipped work (not this campaign's phases): PyAutoLens#800 residual_threshold spurious-core filter (default 10.0, 2026-10-23) and PyAutoLens#801 docstring + autolens_workspace guides/point_solver/limitations.py (records complete/2026/10/point-solver-spurious-core.md, point-solver-guide.md). Remainder task still unissued; epic closure remains a human decision.
- Point-source (single-source) CPU campaign — carried leftovers and completion evidence — ready: No new committed campaign measurements. Phases 1–4 remain shipped; epic closure is a human decision. Carried leftovers remain pending. RAL queue empty at review, but transfer preview timed out: cleanup folders and unpulled results unverified. Select one owed cleanup/measurement phase only after review. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
Point-source image plane · A100 — parked
Reviewed 2026-11-06. Parked as research, human decision 2026-10-17 (chat) ("just research to file"). Reference measurement autolens_profiling#434 (issue #427 closed) merged 2026-10-17 (human /prm): job 412519 euclid-ral-gpu-2 exclusive A100, jax 0.10.2, fp64, 2026.10.17.1 private clone: single call 0.934 ms (pre-#768 0.910), vmap-256 0.0125 ms (0.0120), compile 6.54 s; forward gradient finite 16/16, equal to reverse to 1.6e-11; logL bit-exact; +2.7% not attributed (different node/date). A100 per-step breakdown rows unusable. Phase-2 inference fit measurement dropped; no baseline admitted. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/point-source-image-gpu-admission.md. Check-in 2026-11-06: unchanged; no new A100 point-source measurement (the lifecycle 2c rows #480 are the day-zero point-source cells).
- Point-source A100 speed-up campaign: profile and optimize with the shared breakdown — parked: Parked, human decision 2026-10-17 (chat). Reference A100 measurement autolens_profiling#434 (merged 2026-10-17 (human /prm), issue #427 closed, job 412519): 0.934 ms single call, 0.0125 ms at vmap-256, forward gradient fixed; phase-2 inference fit measurement dropped. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/point-source-image-gpu-admission.md. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
Cluster PointSolver robustness and performance — active
Reviewed 2026-11-06. Human decision 2026-10-23 (chat): keep the 1.0″ starting grid as the production default (decision record cluster-pointsolver-starting-grid; closes the phase-1 deferral). Inputs: phase-1 simple sweep (#438), A2744 pilot job 412573 (1.0″ misses fewest, 2/69), starting-grid follow-up autolens_profiling#439 → #440 merged 03d36c81 (no fixed scale finds every image; no separation rule). Mitigation: the workspace validation check. Next bounded task: spurious-core candidates library task (start_dev in progress), then the validation check. No default changed. Check-in 2026-11-06: spurious-core library task SHIPPED: PyAutoLens#800 merged 2026-10-23 (residual_threshold, default 10.0 by human decision) plus guide PyAutoLens#801 / autolens_workspace#600/#601 / HowToLens#101. Remaining bounded task: the workspace validation check, filed as Mind draft draft/feature/autolens_workspace/cluster_point_solver_validation_check.md (not started). Lifecycle 2e cluster rows (#490) are the day-zero cluster cells. No default changed.
- Cluster PointSolver — robustness, analysis settings and performance — active: Decision taken 2026-10-23 (human): keep 1.0″ + validation check; #439/#440 merged (03d36c81). Next: spurious-core candidates library task (start_dev in progress), then the workspace validation check. Check-in 2026-11-06: spurious-core shipped (PyAutoLens#800, default residual_threshold 10.0, 2026-10-23) plus the point-solver guide (PyAutoLens#801, autolens_workspace#600/#601, HowToLens#101). Next bounded task: the workspace validation check (Mind draft draft/feature/autolens_workspace/cluster_point_solver_validation_check.md, not started).
- PointSolver profiling cells: lensed quasar → cluster runtime tier → single/multi-source → multiplane — ready: Unissued, no claim. Candidate first cell: a representative-data cluster likelihood_runtime baseline (single-source preset). Reconcile onto the phase-1 harness (scripts/cluster/image_plane/robust_settings_sweep.py) when the next cell is issued; no duplicate cell. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
Interferometer likelihood and streaming — parked
Reviewed 2026-11-06. Evening 2026-10-17: human decision 2026-10-17 (chat): interferometer CPU work is exhaustive and closed; curvature preload parked ("we will come back to it soon"); GPU levers "file wiki research but not make source code changes for now", so no library prompt for JAX FFT pruning. Parked at knowledge-complete. All merged 2026-10-17 (human /prm), pending release for the library PRs: L2 symmetric direct_conv PyAutoArray#636 (issue #635 closed, pending-release; real Aris RAL 1.49×/1.53×/1.58× at 1,459/2,577/5,746 vertices, logL to round-off; decision record direct-conv-symmetric-gate) + record autolens_profiling#425; A100 FFT levers #433 (issue #429 closed) (pruned FFT 1.08×/1.18×/1.41× whole likelihood at alma/alma_high/jvla; pixel-scale coarsening fails the 0.5-nat bar); streaming 1e8 CPU/A100 + memo after-measurement #435 (issues #368, #426 closed). Route-constant refit (RAL FFT/full direct_conv 0.68 vs 0.89 predicted) deferred. Merged in order #636, #425, #432, #431, #433, #434, #435. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/direct-conv-symmetric.md, https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/ral-route-constants-fft-levers.md, https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/interferometer-streaming-memo-after.md. Check-in 2026-11-06: still parked. Aris large-mask follow-ups shipped 2026-10-24: the >=16-worker Nautilus SIGSEGV was numba first-imported inside forked workers; fixed by PyAutoFit#1715 (likelihood warm-up in the parent before forking), with PyAutoArray#655 (finufft CPU NUFFT backend) on its own merits. That warm-up later exposed the GNU OpenMP fork kill of numba prange kernels, fixed by PyAutoArray#677 (2026-11-05, pending release). Lifecycle 2b standard-size rows (#483) and quiet reruns (#494) are the current interferometer cells.
- Interferometer fixed-mapper searches: reuse the W~ curvature matrix across likelihood calls via
preloads.curvature_matrix— parked: Parked, human decision 2026-10-17 (chat): interferometer CPU work closed; "we will come back to it soon". Phase-1 Mind draft unstarted. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review). - fnnls warm-start memo: stop it slowing scattered evaluation streams (interferometer CPU, autolens_profiling#332) — parked: After-measurement autolens_profiling#435 merged 2026-10-17 (human /prm) (issue #426 closed; job 412526, ral compute-10-2, load ~10, 1 thread, 6 rounds, paired bootstrap 90% CI): Delaunay iid #332 flags 1.918 [1.887,1.925] (2.17 in #332); 15 timed solves 1.018 [1.013,1.023]; Delaunay walk 0.46; rect iid 0.887/0.987; rect walk 0.15; FoM identical. Not evidence #613 is fixed. Research owed: Nautilus-replay witness, varied-seed rounds. Parked, human decision 2026-10-17 (chat). Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/interferometer-streaming-memo-after.md. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- Campaign: interferometer streaming (array-free) vs in-memory — memory and time scaling to 2e8 visibilities — parked: Phase 2 autolens_profiling#435 merged 2026-10-17 (human /prm) (issue #368 closed): from_stream chunk 65536 fp64, 1e8 vis RAL CPU 707.5 s / 1.78 GB RSS, A100 157.3 s / 1.48 GB device; compile ~3 s constant. In-memory fails at 2.5e5 (RAL 10 GB cap) and 4e6 (A100); uncapped CPU ~7.5 kB/vis. Optional 2e8 rows are research; library candidate (chunk transformer.image_from) unfiled per human decision 2026-10-17 (chat). Parked. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/interferometer-streaming-memo-after.md. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- Interferometer W~ curvature matrix is FFT-bound on the mask extent: pruned padded FFT and real-space pixel scale on the A100 — parked: A100 research autolens_profiling#433 merged 2026-10-17 (human /prm) (issue #429 closed; job 412515): pruned padded FFT 1.08×/1.18×/1.41× whole likelihood at alma/alma_high/jvla, F exact to 1.7e-15; pixel-scale coarsening shifts log evidence by +1,310 to +2,757 nats (fails). No library prompt, human decision 2026-10-17 (chat). Parked. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/ral-route-constants-fft-levers.md. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
Linear-solver accuracy and cost — active
Reviewed 2026-11-06. Retain the 2026-10-08 human decision: Jacobi for Mapper, raw+polish for MGE-only, no default change. Project wiki still says decision pending (stale). No new solver measurements after the recorded phase-5 results; release 2026.10.12.1 does not supply a rerun. Wide-prior/interferometer gaps remain evidence gaps, not authorized tasks. Check-in 2026-10-17: no project wiki/results/issue change since 2026-10-13 beyond autolens_profiling#420/#422/#424 (interferometer only); releases 2026.10.16.1/.2 and 2026.10.17.1 supply no new measurement. Check-in 2026-11-06: no solver measurement or wiki change since 10-17; releases 2026.11.1.1-2026.11.5.1 supply none. Project wiki still says decision pending (stale).
Production imaging and likelihood breakdown — active
Reviewed 2026-11-06. Production over-sampling phase 1 merged 2026-10-17 (human /prm): autolens_profiling#431 (issue #430 closed, CPU smoke 8/8): --over-sampling {flat1,production} on the 4 JAX Delaunay/DelaunayNN cells, euclid/hst presets. Findings: HST flat-1 adapt_split pin fails on unmodified main (29155.000 vs 29140.296); numba cells' production threshold never reaches sub 4 for HST; rectangular JAX cells uncovered. Phase 2 (A100 production re-measure) needs-decision (human decision 2026-10-17 (chat): undecided). DelaunayNN imaging moved to the parked delaunay-nn-cpu campaign. Post-certified, quick-update plotting and other tasks unchanged. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/imaging-production-over-sampling.md. Human decision 2026-10-17 (chat): hold off on phase 2 (A100 production over-sampling re-measure); not authorized, revisit when production imaging needs a cost picture. Check-in 2026-11-06: phase 2 over-sampling still held (human). Lifecycle 2a standard-size imaging rows (#457-#461, #467, #470) stamped day_zero 2026.10.25.1 (#500) are now the imaging baseline; post-certified and quick-update tasks unchanged.
- Profile imaging pixelizations at production over-sampling — parked: Phase 1 merged 2026-10-17 (human /prm): autolens_profiling#431 (issue #430 closed, CPU smoke 8/8). Phase 2 A100 production re-measure needs-decision (human decision 2026-10-17 (chat): undecided); requires compute authorization (#431 now merged). Findings: HST flat-1 adapt_split pin fails on main; numba HST threshold never reaches sub 4; rectangular JAX cells uncovered. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/imaging-production-over-sampling.md. Human decision 2026-10-17 (chat): phase 2 A100 re-measure held; task stays parked at phase 1 shipped (#431). Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- Assess remaining likelihood bottlenecks after certified solver integration on CPU and GPUs — needs-slicing: Blocked-by is stale: resolved 2026-09-27 (PyAutoArray#567 in 2026.9.26.1). Unissued; scope one bounded phase from the full task contract. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- Quick-update plotting cost — minutes per update, and it is not JAX compile — ready: Unchanged; targets PyAutoLens/PyAutoGalaxy (PyAutoLens#680 closed 2026-07-31, no follow-up issue). Select one bounded step when prioritised. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
DelaunayNN (Sibson) mesh at Delaunay cost on the numba/NumPy CPU path — parked
Reviewed 2026-11-06. Created parked, human decision 2026-10-17 (chat): "file in research to come back to in the future". PyAutoArray#637 (issue #629 closed) merged 2026-10-17 (human /prm), pending-release: RAL compute-10-4 exclusive 1 thread A-B-B-A ×2, 1,030 vertices / 15,380 px: NN sub4 0.569→0.392 s (2.20× Delaunay, was 3.00×), sub2 0.235→0.189 s (1.75×); logL bit-identical; fixes the size-0 Sibson NaN case. ~1.5× target not met; remaining cost is Sibson (~0.16 s) + wider curvature rows. Target and two hazards recorded as future work, not filed. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/delaunaynn-wide-row-overhead.md. Check-in 2026-11-06: PyAutoArray#677 (merged 2026-11-05, pending release, not in 2026.11.5.1) makes Nautilus workers run a serial Sibson build, and autolens_profiling#519/#520 (merged 2026-11-05) time the DelaunayNN numba cells on that worker route. Mind draft draft/bug/autoarray/sibson_serial_kernel_loses_allocation_hoisting.md: the serial kernel is about 1.25x prange@1, because numba hoists scratch allocations only under parallel=True. That is the cost every worker now pays. Stays parked.
- DelaunayNN (Sibson) imaging likelihood at close to Delaunay cost on the numba/NumPy CPU path — parked: Parked, human decision 2026-10-17 (chat). PyAutoArray#637 merged 2026-10-17 (human /prm) (issue #629 closed, pending-release): sub4 2.20× Delaunay (was 3.00×), sub2 1.75×; logL bit-identical. Future (unfiled): ~1.5× target; hazards sub_slim_indexes_for_pix_index padding and Sibson rows with mid-row gaps. Records: https://github.com/PyAutoLabs/PyAutoMind/blob/main/complete/2026/10/delaunaynn-wide-row-overhead.md. Check-in 2026-11-06: PyAutoArray#677 (pending release) runs a serial Sibson build in Nautilus workers; autolens_profiling#519/#520 time the DelaunayNN cells on that route; the serial kernel is about 1.25x prange@1 (Mind draft draft/bug/autoarray/sibson_serial_kernel_loses_allocation_hoisting.md). Still parked.
Measurement reliability and profiling tools — active
Reviewed 2026-11-06. Timing audit #410–#412 and raw HST/MGE pilot producer #416 merged; implementation issues #362/#415 closed. No fresh production measurements or scientific acceptance. C1/C11 repeat counts, C5 estimator policy, memo interpretation, fresh runtime repeats and other tools remain pending. #418 and #417 open. Evening 2026-10-17 merge-order note: Six open autolens_profiling PRs (#425, #431, #432, #433, #434, #435) all regenerate the shared catalogue/dashboard: each merge after the first needs a rebase + re-render; suggested order #425, #432, #431, #433, #434, #435. #425 after PyAutoArray#636. Check-in 2026-11-06: the numba thread pin landed differently than filed. autolens_profiling#519/#520 (human decision) pin only the DelaunayNN cells to the Nautilus worker route, instead of THREAD_ENV_VARS. The re-measure is Mind draft draft/feature/autolens_profiling/delaunay_nn_numba_optimal_remeasure_after_677.md, gated on the release carrying #677. Lifecycle phase 6 (#506-#518) measured forward vs value_and_grad plus FD on every cell, overlapping gradient_cost_probe (human decision whether it is superseded). Other tasks unchanged and unissued.
- MGE likelihood_breakdown steps are cumulative and
linear_gaussiansis reported as 0 — ready: Unchanged and unissued (no GitHub refs, 2026-10-04). Select one bounded step when measurement-tools is prioritised. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review). - Numba breakdown harness: perturb the instance so the operated-matrix memo cannot hide a step — ready: Unchanged and unissued (PyAutoArray#496 closed 2026-08-27). Select one bounded step when prioritised. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- Pin NUMBA_NUM_THREADS=1 in profiling cells; re-measure the DelaunayNN numba Optimal cell after PyAutoArray#677 releases — blocked: Step 1 done differently than filed: autolens_profiling#519/#520 (merged 2026-11-05, human decision) pin only the two DelaunayNN numba cells to the Nautilus worker route (patched parallel_kernel_allowed, serial Sibson) instead of adding NUMBA_NUM_THREADS to THREAD_ENV_VARS. Laptop witness: patched route matches a real forked worker (1.024x); serial Sibson is about 1.25x prange@1 (Mind draft draft/bug/autoarray/sibson_serial_kernel_loses_allocation_hoisting.md). Step 2 (RAL re-measure, supersede the 2026.10.25.1 rows) is Mind draft draft/feature/autolens_profiling/delaunay_nn_numba_optimal_remeasure_after_677.md, blocked on a release carrying PyAutoArray#677 (2026.11.5.1 does not). Step 3 (day-zero designation) stays a human decision.
- Search settings-estimation + profiling infrastructure (n_starts / batch_size / n_batch) — ready: Unchanged and unissued (autolens_profiling#82 closed 2026-08-18). Select one bounded step when prioritised. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- jax_compile/probe.py lost its cell builder with the searches tier — give profiling its own — active: Manual HST/MGE fp64 jit builder #414 and separate raw pilot runner #416 merged. Bounded Mind implementations complete; wider builder coverage/global compile dispatch still unavailable. Agree a next capability or separately authorize a qualified pilot; no production compute authorized. Check-in 2026-10-17: autolens_profiling#418 (pilot qualification design) open since 2026-10-13 with CI green and no review; #417 open; no new measurements. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- profile_lens_aggregator.py cannot run from the autolens_workspace_developer root: no config/ directory — ready: Unchanged: workspace_developer main still has no root config/ (bug presumed live, not re-run). Select one bounded step when prioritised. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- jax_profiling/gradient/imaging/pixelization.py: 3.2% of its pin move is unattributed — ready: Unchanged and unissued (PyAutoArray#490 merged 2026-08-26). Select one bounded step when prioritised. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
- Pair JAX/XLA env vars with measured compile and run times, per backend — ready: Unchanged and unissued. Context: the jax-version policy is now released (2026.10.7.1 libraries require Nerves with the JAX deadlock exclusions). Select one bounded step when prioritised. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
PyAutoFit profiling bootstrap — active
Reviewed 2026-11-06. B4a (autofit_profiling#3) and B4b (autofit_profiling#5, issue #4 closed, merged 2026-10-15) shipped: search.fit breakdown cell, profiling-summary@2 exporter, EP/graphical N3/N10/N30 baselines and analytic parity cell; #6 repointed RAL paths to the category layout (2026-10-15). Pulse fit fixture/campaign merged (#60, #61); fit receipt ok at autofit_profiling 58e56b9 (31 records, fetched 2026-10-15T22:58Z), so the post-deploy refresh is done. Epic 2 not opened: next bounded step is a human-scoped epic-2 campaign row; B5c inference work belongs to Insight, not Pulse. Check-in 2026-11-06: no change since 10-15 beyond CI token wiring (autofit_profiling#7). Epic 2 still not opened (human scope).
- autofit_profiling: bootstrap the repo + general PyAutoFit profiling epic — active: B4a (autofit_profiling#3) and B4b (autofit_profiling#5, issue #4 closed, merged 2026-10-15) shipped: search.fit breakdown cell, profiling-summary@2 exporter, EP/graphical N3/N10/N30 baselines and analytic parity cell; #6 repointed RAL paths to the category layout (2026-10-15). Pulse fit fixture/campaign merged (#60, #61); fit receipt ok at autofit_profiling 58e56b9 (31 records, fetched 2026-10-15T22:58Z), so the post-deploy refresh is done. Epic 2 not opened: next bounded step is a human-scoped epic-2 campaign row; B5c inference work belongs to Insight, not Pulse. Check-in 2026-11-06: unchanged (no autolens_profiling PR/issue, Mind record or measurement touching it since the last review).
Critical curves and evaluation grids — active
Reviewed 2026-11-06. Human decision 2026-11-06 (chat): move toward the JAX zero-contour engine for critical curves in modeling-run visualization, starting with a feasibility phase ("or doing work to figure out if its feasible"). Next bounded step: task critical_curves_jax_modeling_viz_feasibility (correctness on posterior draws per scale against the pre-registered two-pixel rule, cold/warm cost per visualization call on CPU and A100, cheap incomplete-curve detection and marching-squares fallback; GO/NO-GO per scale). No default changes until a later phase. Prior: phase 3a cluster NO-GO for default seeds (autolens_profiling#364); phase 3b cap fix PyAutoGalaxy#646; PyAutoLens#808 cluster plots read critical_curves_method.
- Feasibility: JAX zero-contour critical curves and caustics in modeling-run visualization — ready: Filed 2026-11-06 (human decision). Research only, no default change. Issue through start_dev (autolens_profiling, with a Mind prompt referencing this task) when prioritised; uses the phase-4 posterior draws (autolens_inference#59) as the correctness corpus.
Certified positive solver — parked
Reviewed 2026-11-06. Parked unchanged. No new campaign evidence; existing C2/library/workspace drafts remain pending. Do not infer admission from solver timing, and do not change default or restart the campaign. Check-in 2026-10-17: no project wiki/results/issue change since 2026-10-13 beyond autolens_profiling#420/#422/#424 (interferometer only); releases 2026.10.16.1/.2 and 2026.10.17.1 supply no new measurement. Check-in 2026-11-06: unchanged.
Likelihood lifecycle phase 2 (per-dataset-type runtime and breakdown cells on the pinned release) — active
Reviewed 2026-11-06. Phases 2, 3 and 6 complete (day_zero 2026.10.25.1: 480 records / 116 cells; day_zero_gradient: 10 records). Phase 4 (inference wall-time validation, autolens_inference -> walltime-validation@1): runners for all 20 likelihoods merged (#55-#58); 56 imaging/hst rows on 2026.10.17.1 adopted. All GPU legs done; CPU legs: 31 completed. Check-in 2026-11-06: 4e STARTED (autolens_inference#59). Its branch holds 103 phase-4 rows (293 walltime records, gates green); one PR once the last legs land (human). Cores sweep complete: parallel efficiency 0.68/0.62/0.55/0.36/0.28 at 2/4/8/16/32 cores; 1-core 601 vs profiled 566 ms/eval. Nautilus samples_info time across a kill and resume reads 3-4x high, so the resumed multi_galaxy/mge leg 414362 is discarded and rerun fresh as 414392 (human). Wall-estimate bug filed: draft/bug/autolens_inference/validation_wall_estimates_miss_eval_count_and_sampler_floor.md (actual/estimate 0.55-89.5x). Still running: 414148 datacube (long pole), 414156_1, 414158, 414159, 414161, 414392. Parity layout (wiki/project/p4_backend_parity.md on the branch) awaits human rulings. Next: last legs -> 4e PR -> Pulse lens-walltime refresh; then phase 5 scoping.
autofit — choose a setup
analytic_gaussian
- conjugate hierarchical gaussian: unspecified
gaussian_1d_ep
- gaussian, centre shared across datasets: unspecified
gaussian_x1
- gaussian: unspecified
Capture, qualification and legacy diagnostics
Project autofit_profiling, scope pyautofit-profiling, read from PyAutoLabs/autofit_profiling dashboard/catalogue.json at 0481145e; producer revision —; generated 2026-10-14T14:45:45Z; comparison policy no-temporal-comparisons. Project dashboard · receipt.
- Integrity: ok
- Freshness: freshness policy unspecified · age 9 d at fetch 2026-10-23 (evidence 2026-10-14)
- Qualification: 31/31 records · 0/0 comparisons qualified
- Laptop CPU only, pinned to one host (DESKTOP-H143S82, WSL2) so Pulse's same-host rule pairs every record; the epic's release-sweep pin (euclid-ral-gpu-2, an A100 node) does not fit CPU Dynesty runs. Cross-machine reproduction on RAL is a later campaign.
- Wall times vary up to ±40 % between sessions on this host, so breakdown shares are the comparable quantity, not seconds; the EP / graphical / parity rows are single fresh-process fits (repetitions 1).
- Component times are exclusive monkey-patched wall-clock intervals; 'other' is wall minus the instrumented total, not a measured phase.
- The EP / graphical rows carry a producer-side reproduction note against the committed autofit_workspace_developer baselines (runtime-drift-2x-1ms, in each row's
reference); it is not a Pulse comparison, because those baselines recorded no host and no record pair exists. - The N30 EP and graphical rows reproduce the committed sanity FAIL; their wall and memory are real measurements of a fit whose parameter recovery fails, not of a correct fit.
- Every record is unreviewed: the producer declares measurements, the Brain's profiling conductor judges them; nothing here is a verdict.
- No temporal comparisons: one baseline per setup.
autolens — current runtime setups
140 current results.
All rows: default lens light
| Dataset type | Model | Instrument | Source size | Setup | Hardware class | Runtime (s) | Est. 12 CPU (s) | Class |
|---|---|---|---|---|---|---|---|---|
| cluster | image_plane | simple | standard | jax_cpu |
hpc_ral_cpu | 0.00615 | — | optimal |
| cluster | image_plane | simple | standard | jax_gpu |
hpc_a100 | 0.00020 | — | optimal |
| cluster | source_plane | simple | standard | jax_cpu |
hpc_a100 | 0.00029 | — | experimental |
| cluster | source_plane | simple | standard | jax_cpu |
hpc_ral_cpu | 0.00025 | — | optimal |
| cluster | source_plane | simple | standard | jax_gpu |
hpc_a100 | 0.00005 | — | optimal |
| datacube | delaunay | alma | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 14.29435 | — | secondary |
| datacube | delaunay | alma | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 1.25160 | — | secondary |
| datacube | delaunay | alma | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 9.35570 | 1.55928 | optimal |
| datacube | delaunay | alma_high | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 22.05096 | — | secondary |
| datacube | delaunay | alma_high | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 1.43666 | — | secondary |
| datacube | delaunay | alma_high | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 17.64321 | 2.94054 | optimal |
| datacube | delaunay | sma | standard | jax_cpu_dense_nufft |
hpc_ral_cpu | 22.90377 | — | experimental |
| datacube | delaunay | sma | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 12.90693 | — | secondary |
| datacube | delaunay | sma | standard | jax_gpu_dense_nufft |
hpc_a100 | 1.18548 | — | secondary |
| datacube | delaunay | sma | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 1.15442 | — | secondary |
| datacube | delaunay | sma | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 8.44413 | 1.40735 | optimal |
| group | delaunay | euclid | standard | jax_cpu_sparse |
hpc_a100 | 3.83232 | — | experimental |
| group | delaunay | euclid | standard | jax_cpu_sparse |
hpc_ral_cpu | 6.05431 | — | secondary |
| group | delaunay | euclid | standard | jax_gpu_dense |
hpc_a100 | 0.03656 | — | optimal |
| group | delaunay | euclid | standard | jax_gpu_sparse |
hpc_a100 | 0.05559 | — | secondary |
| group | delaunay | euclid | standard | numba_cpu_sparse |
hpc_ral_cpu | 0.80373 | 0.13395 | optimal |
| group | mge | euclid | standard | jax_cpu_dense |
hpc_ral_cpu | 0.03737 | — | optimal |
| group | mge | euclid | standard | jax_gpu_dense |
hpc_a100 | 0.00083 | — | optimal |
| group | rectangular | euclid | standard | jax_cpu_sparse |
hpc_a100 | 3.23359 | — | experimental |
| group | rectangular | euclid | standard | jax_cpu_sparse |
hpc_ral_cpu | 5.92017 | — | secondary |
| group | rectangular | euclid | standard | jax_gpu_dense |
hpc_a100 | 0.02983 | — | optimal |
| group | rectangular | euclid | standard | jax_gpu_sparse |
hpc_a100 | 0.05066 | — | secondary |
| group | rectangular | euclid | standard | numba_cpu_sparse |
hpc_ral_cpu | 0.89958 | 0.14993 | optimal |
| imaging | delaunay | ao | standard | jax_cpu_sparse |
hpc_a100 | 56.56584 | — | experimental |
| imaging | delaunay | ao | standard | jax_cpu_sparse |
hpc_ral_cpu | 81.31091 | — | secondary |
| imaging | delaunay | ao | standard | jax_gpu_dense |
hpc_a100 | 0.34787 | — | optimal |
| imaging | delaunay | ao | standard | jax_gpu_sparse |
hpc_a100 | 0.82149 | — | secondary |
| imaging | delaunay | ao | standard | numba_cpu_sparse |
hpc_ral_cpu | 8.67130 | 1.44522 | optimal |
| imaging | delaunay | euclid | standard | jax_cpu_sparse |
hpc_a100 | 1.14835 | — | experimental |
| imaging | delaunay | euclid | standard | jax_cpu_sparse |
hpc_ral_cpu | 1.24691 | — | secondary |
| imaging | delaunay | euclid | standard | jax_gpu_dense |
hpc_a100 | 0.01450 | — | optimal |
| imaging | delaunay | euclid | standard | jax_gpu_sparse |
hpc_a100 | 0.01796 | — | secondary |
| imaging | delaunay | euclid | standard | numba_cpu_sparse |
hpc_ral_cpu | 0.81997 | 0.13666 | optimal |
| imaging | delaunay | hst | standard | jax_cpu_sparse |
hpc_a100 | 2.47782 | — | experimental |
| imaging | delaunay | hst | standard | jax_cpu_sparse |
hpc_ral_cpu | 2.99106 | — | secondary |
| imaging | delaunay | hst | standard | jax_gpu_dense |
hpc_a100 | 0.03419 | — | optimal |
| imaging | delaunay | hst | standard | jax_gpu_sparse |
hpc_a100 | 0.04716 | — | secondary |
| imaging | delaunay | hst | standard | numba_cpu_sparse |
hpc_ral_cpu | 0.95168 | 0.15861 | optimal |
| imaging | delaunay | jwst | standard | jax_cpu_sparse |
hpc_a100 | 5.08536 | — | experimental |
| imaging | delaunay | jwst | standard | jax_cpu_sparse |
hpc_ral_cpu | 6.56182 | — | secondary |
| imaging | delaunay | jwst | standard | jax_gpu_dense |
hpc_a100 | 0.06970 | — | optimal |
| imaging | delaunay | jwst | standard | jax_gpu_sparse |
hpc_a100 | 0.10760 | — | secondary |
| imaging | delaunay | jwst | standard | numba_cpu_sparse |
hpc_ral_cpu | 1.74460 | 0.29077 | optimal |
| imaging | delaunay_nn | hst | standard | jax_cpu_sparse |
hpc_a100 | 5.87672 | — | experimental |
| imaging | delaunay_nn | hst | standard | jax_cpu_sparse |
hpc_ral_cpu | 7.24895 | — | secondary |
| imaging | delaunay_nn | hst | standard | jax_gpu_dense |
hpc_a100 | 0.04174 | — | optimal |
| imaging | delaunay_nn | hst | standard | jax_gpu_sparse |
hpc_a100 | 1.14899 | — | secondary |
| imaging | delaunay_nn | hst | standard | numba_cpu_sparse |
hpc_ral_cpu | 1.29480 | 0.21580 | optimal |
| imaging | mge | ao | standard | jax_cpu_dense |
hpc_ral_cpu | 0.51180 | — | optimal |
| imaging | mge | ao | standard | jax_gpu_dense |
hpc_a100 | 0.01878 | — | optimal |
| imaging | mge | euclid | standard | jax_cpu_dense |
hpc_ral_cpu | 0.00707 | — | optimal |
| imaging | mge | euclid | standard | jax_gpu_dense |
hpc_a100 | 0.00020 | — | optimal |
| imaging | mge | hst | standard | jax_cpu_dense |
hpc_ral_cpu | 0.01629 | — | optimal |
| imaging | mge | hst | standard | jax_gpu_dense |
hpc_a100 | 0.00039 | — | optimal |
| imaging | mge | jwst | standard | jax_cpu_dense |
hpc_ral_cpu | 0.05055 | — | optimal |
| imaging | mge | jwst | standard | jax_gpu_dense |
hpc_a100 | 0.00092 | — | optimal |
| imaging | rectangular | ao | standard | jax_cpu_sparse |
hpc_a100 | 50.70251 | — | experimental |
| imaging | rectangular | ao | standard | jax_cpu_sparse |
hpc_ral_cpu | 76.81754 | — | secondary |
| imaging | rectangular | ao | standard | jax_gpu_dense |
hpc_a100 | 0.31711 | — | optimal |
| imaging | rectangular | ao | standard | jax_gpu_sparse |
hpc_a100 | 0.93699 | — | secondary |
| imaging | rectangular | ao | standard | numba_cpu_sparse |
hpc_ral_cpu | 9.98218 | 1.66370 | optimal |
| imaging | rectangular | euclid | standard | jax_cpu_sparse |
hpc_a100 | 0.82523 | — | experimental |
| imaging | rectangular | euclid | standard | jax_cpu_sparse |
hpc_ral_cpu | 0.91061 | — | secondary |
| imaging | rectangular | euclid | standard | jax_gpu_dense |
hpc_a100 | 0.00768 | — | optimal |
| imaging | rectangular | euclid | standard | jax_gpu_sparse |
hpc_a100 | 0.01293 | — | secondary |
| imaging | rectangular | euclid | standard | numba_cpu_sparse |
hpc_ral_cpu | 0.28250 | 0.04708 | optimal |
| imaging | rectangular | hst | source_pixels_784 | jax_cpu_sparse |
hpc_a100 | 1.15558 | — | experimental |
| imaging | rectangular | hst | standard | jax_cpu_sparse |
hpc_a100 | 1.93196 | — | experimental |
| imaging | rectangular | hst | standard | jax_cpu_sparse |
hpc_ral_cpu | 2.96301 | — | secondary |
| imaging | rectangular | hst | source_pixels_784 | jax_gpu_dense |
hpc_a100 | 0.01328 | — | secondary |
| imaging | rectangular | hst | standard | jax_gpu_dense |
hpc_a100 | 0.02468 | — | optimal |
| imaging | rectangular | hst | source_pixels_784 | jax_gpu_sparse |
hpc_a100 | 0.02924 | — | secondary |
| imaging | rectangular | hst | standard | jax_gpu_sparse |
hpc_a100 | 0.04052 | — | secondary |
| imaging | rectangular | hst | source_pixels_784 | numba_cpu_sparse |
hpc_ral_cpu | 0.56651 | 0.09442 | secondary |
| imaging | rectangular | hst | standard | numba_cpu_sparse |
hpc_ral_cpu | 0.69674 | 0.11612 | optimal |
| imaging | rectangular | jwst | standard | jax_cpu_sparse |
hpc_a100 | 4.19764 | — | experimental |
| imaging | rectangular | jwst | standard | jax_cpu_sparse |
hpc_ral_cpu | 5.75356 | — | secondary |
| imaging | rectangular | jwst | standard | jax_gpu_dense |
hpc_a100 | 0.06071 | — | optimal |
| imaging | rectangular | jwst | standard | jax_gpu_sparse |
hpc_a100 | 0.10733 | — | secondary |
| imaging | rectangular | jwst | standard | numba_cpu_sparse |
hpc_ral_cpu | 1.68807 | 0.28135 | optimal |
| interferometer | delaunay | alma | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 2.12071 | — | secondary |
| interferometer | delaunay | alma | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.02083 | — | optimal |
| interferometer | delaunay | alma | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 0.76495 | 0.12749 | optimal |
| interferometer | delaunay | alma_high | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 7.60144 | — | secondary |
| interferometer | delaunay | alma_high | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.06371 | — | optimal |
| interferometer | delaunay | alma_high | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 9.32869 | 1.55478 | optimal |
| interferometer | delaunay | jvla | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 51.43514 | — | secondary |
| interferometer | delaunay | jvla | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.46518 | — | optimal |
| interferometer | delaunay | jvla | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 63.79915 | 10.63319 | optimal |
| interferometer | delaunay | sma | standard | jax_cpu_dense_nufft |
hpc_ral_cpu | 5.82222 | — | experimental |
| interferometer | delaunay | sma | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 0.78458 | — | secondary |
| interferometer | delaunay | sma | standard | jax_gpu_dense_nufft |
hpc_a100 | 0.05735 | — | secondary |
| interferometer | delaunay | sma | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.01136 | — | optimal |
| interferometer | delaunay | sma | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 0.27934 | 0.04656 | optimal |
| interferometer | mge | sma | standard | jax_cpu_dense_nufft |
hpc_ral_cpu | 0.08329 | — | optimal |
| interferometer | mge | sma | standard | jax_gpu_dense_nufft |
hpc_a100 | 0.00060 | — | optimal |
| interferometer | rectangular | alma | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 1.92896 | — | secondary |
| interferometer | rectangular | alma | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.04897 | — | optimal |
| interferometer | rectangular | alma | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 0.88877 | 0.14813 | optimal |
| interferometer | rectangular | alma_high | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 7.42959 | — | secondary |
| interferometer | rectangular | alma_high | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.08106 | — | optimal |
| interferometer | rectangular | alma_high | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 8.91904 | 1.48651 | optimal |
| interferometer | rectangular | jvla | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 48.48120 | — | secondary |
| interferometer | rectangular | jvla | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.45628 | — | optimal |
| interferometer | rectangular | jvla | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 61.43605 | 10.23934 | optimal |
| interferometer | rectangular | sma | standard | jax_cpu_dense_nufft |
hpc_ral_cpu | 5.38033 | — | experimental |
| interferometer | rectangular | sma | standard | jax_cpu_sparse_wtilde |
hpc_ral_cpu | 0.64392 | — | secondary |
| interferometer | rectangular | sma | standard | jax_gpu_dense_nufft |
hpc_a100 | 0.05198 | — | secondary |
| interferometer | rectangular | sma | standard | jax_gpu_sparse_wtilde |
hpc_a100 | 0.00675 | — | optimal |
| interferometer | rectangular | sma | standard | numba_cpu_sparse_wtilde |
hpc_ral_cpu | 0.23086 | 0.03848 | optimal |
| multi_dataset | delaunay | hst | standard | jax_cpu_sparse |
hpc_a100 | 4.87350 | — | experimental |
| multi_dataset | delaunay | hst | standard | jax_cpu_sparse |
hpc_ral_cpu | 6.21428 | — | secondary |
| multi_dataset | delaunay | hst | standard | jax_gpu_dense |
hpc_a100 | 0.17631 | — | optimal |
| multi_dataset | delaunay | hst | standard | jax_gpu_sparse |
hpc_a100 | 0.20415 | — | secondary |
| multi_dataset | delaunay | hst | standard | numba_cpu_sparse |
hpc_ral_cpu | 2.85239 | 0.47540 | optimal |
| multi_galaxy | delaunay | hst | standard | jax_cpu_sparse |
hpc_a100 | 2.96473 | — | experimental |
| multi_galaxy | delaunay | hst | standard | jax_cpu_sparse |
hpc_ral_cpu | 3.72110 | — | secondary |
| multi_galaxy | delaunay | hst | standard | jax_gpu_dense |
hpc_a100 | 0.03050 | — | optimal |
| multi_galaxy | delaunay | hst | standard | jax_gpu_sparse |
hpc_a100 | 0.04525 | — | secondary |
| multi_galaxy | delaunay | hst | standard | numba_cpu_sparse |
hpc_ral_cpu | 0.85033 | 0.14172 | optimal |
| multi_galaxy | mge | hst | standard | jax_cpu_dense |
hpc_ral_cpu | 0.02658 | — | optimal |
| multi_galaxy | mge | hst | standard | jax_gpu_dense |
hpc_a100 | 0.00058 | — | optimal |
| multi_galaxy | rectangular | hst | standard | jax_cpu_sparse |
hpc_a100 | 2.49780 | — | experimental |
| multi_galaxy | rectangular | hst | standard | jax_cpu_sparse |
hpc_ral_cpu | 3.85938 | — | secondary |
| multi_galaxy | rectangular | hst | standard | jax_gpu_dense |
hpc_a100 | 0.02184 | — | optimal |
| multi_galaxy | rectangular | hst | standard | jax_gpu_sparse |
hpc_a100 | 0.03811 | — | secondary |
| multi_galaxy | rectangular | hst | standard | numba_cpu_sparse |
hpc_ral_cpu | 1.09857 | 0.18309 | optimal |
| point_source_image | image_plane | simple | standard | jax_cpu |
hpc_ral_cpu | 0.00095 | — | optimal |
| point_source_image | image_plane | simple | standard | jax_gpu |
hpc_a100 | 0.00040 | — | optimal |
| point_source_source | source_plane | simple | standard | jax_cpu |
hpc_a100 | 0.00010 | — | experimental |
| point_source_source | source_plane | simple | standard | jax_cpu |
hpc_ral_cpu | 0.00006 | — | optimal |
| point_source_source | source_plane | simple | standard | jax_gpu |
hpc_a100 | 0.00012 | — | optimal |
| weak | isothermal | simple | standard | jax_cpu_dense |
hpc_a100 | 0.00006 | — | experimental |
| weak | isothermal | simple | standard | jax_cpu_dense |
hpc_ral_cpu | 0.00004 | — | optimal |
| weak | isothermal | simple | standard | jax_gpu_dense |
hpc_a100 | 0.00001 | — | optimal |
Coverage: 0 optimal cell(s) not measured.
Capture, qualification and legacy diagnostics
Project autolens_profiling, scope likelihood-lifecycle, read from PyAutoLabs/autolens_profiling dashboard/catalogue.json at 207ae03a; producer revision cefcbb7d; generated 2026-11-05T19:53:33Z; comparison policy no-temporal-comparisons. Project dashboard · receipt.
- Integrity: ok
- Freshness: freshness policy unspecified · evidence time unknown (evidence unknown (No common measurement wall-clock across legacy evidence; inspect each record's measured_at.))
- Qualification: 0/1621 records · 0/0 comparisons qualified
- Lifecycle: 685 current · 936 superseded · 99 archived (producer-declared)
- Phase-0 labels (autolens_profiling#442): nothing was re-measured. A current record is the canonical cell row on a reference host class for a planned baseline cell.
- Day zero (catalogue/day_zero.json, autolens_profiling#499; lifecycle report section 3.6): a current record carries day_zero 2026.10.25.1 when its class is optimal or secondary, its regime is standard, it is on a reference host (hpc_ral_cpu, hpc_a100), its release_pin is the tag, and its cell has a current parity match and a fit figure; a passing cell is stamped whole. A phase-6 gradient record never decides a cell but carries its stamp when it is measured on the tag and its finite-difference check passed (human ruling 2026-11-01, #506). Experimental rows, size variants and rows off the tag are not stamped. PyAutoPulse freezes the stamped records as its day_zero snapshot.
- Classes come from the PyAutoPulse designation records (decisions.yaml kind: designation, mirrored in catalogue/pulse_designations.json; autolens_profiling#497): the designated optimal setup on its likelihood x standard regime x hardware class (hpc_ral_cpu = cpu_many_core, hpc_a100 = gpu_a100) is class optimal with that decision_id, a named secondary is class secondary with it, and any other setup on a designated key is experimental. Rows on local_* hosts or in a non-standard regime (source_pixels_) inherit the role as class secondary with an 'undesignated_regime_or_host' limitation and no decision_id. The held datacube/delaunay hpc_a100 group (catalogue/designation_holds.json) keeps its provisional label: class secondary with 'provisional_optimal: true' (or provisional_secondary), and its planned_cells carry the provisional class.
- Standard source-pixel counts are Delaunay 1250 and rectangular 1225 (35x35). No committed row is at the standard size; current pixelized rows carry a size_fallback limitation.
- Records whose key has no current row (laptop-only, experiment-only, or outside the planned cells) are not rendered; coverage.excluded counts them per key. Every row stays in the companion v2 setup catalogue (dashboard/catalogue/setups.json).
- Historical recommendations and hazard findings name v2 setups and stay in the companion catalogue until they are re-bound to v3 setup_ids.
- Parity records (measurement parity) transcribe a cell's parity.json witness: metric abs_delta_log_likelihood = |log L - reference log L| beside its tolerance, the signed values and the witness status in the record's parity block. A not_assessed witness has no value and yields no record; parity_witnesses lists every witness file.
- resources (cpus_per_eval, peak_rss_gb) comes from the row's own resources block, or for rows measured before it existed from catalogue/peak_rss_backfill.json (sacct MaxRSS: per leg for RAL array tasks, a job-level upper bound for multi-leg A100 jobs).
- projected_node_throughput on runtime records is basis projected, not measured, and only onto the declared host (catalogue/reference_hosts.json) whose host_class the row was measured on (other host classes: not_projected): workers = min(cores / cpus_per_eval, memory / peak_rss_gb), and one per GPU on a GPU host, times the declared parallel efficiency 1.0 (an upper bound, unmeasured; phase 4 measures it), over the per-call time (numba warm iid median, JAX vmap per-call). The sampler's batch ceiling (Nautilus n_batch) is not modelled.
- estimated_12_core on numba CPU runtime records (setup_id numba_cpu*) is basis estimate, not measured: value_s = the per-call time (numba warm iid median) / 6, the human's estimate of one call at 12 cores (ruling 2026-10-26). Nothing ran at 12 cores.
- Carried-forward pins (catalogue/release_revisions.json carry_forward): a record measured on a declared 'from' tag in a declared domain publishes the 'to' tag as release_pin without a rerun; measured_release_pin and its library SHAs stay as provenance and identity.software.release_pin_basis starts 'carried_forward' (2026.10.23.1 -> 2026.10.25.1, imaging only, human ruling 2026-10-26).
no-current/fa262c42d1c1fa9abab8: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/b74ff954389bac73c0a8: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/a34872fd7c903ef8d000: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/36547b1b316c2dab4c2e: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/478b9b5c5f35f7b0fb61: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/6a76add1c536baf31685: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/5376e5d1b8f00b4f6e78: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/5c24ba04fa0343afbbec: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/7cb5611f3c6175283d2e: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/3de4a78aab8eac55ba0c: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/aa4597cf89f849903cf6: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/670498455c76cf8f0df5: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/fa4ba3f437dae2a5b2a5: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/39a4c0dd138cbe5b5e98: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/65407474fe2e4ef8b628: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/c60302d2a01d3deae2c7: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/3e6c652ca2b5e13e724c: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/a5055066b8551ef44ef6: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/9aa64cf8a3e905866534: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/4827c875cd4829835031: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/ce1a16ae9f3a8641deff: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/d78d2cce21403da69323: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/c942faee01a635763191: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/43e54c157c12c0d8bf9a: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/4a0a7126ca43990f501e: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/a4ea3fd3c1790e259fb3: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/2f4258e5f9ae9da1d510: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/40faeb7b8e8abca042bc: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/c5c6c00e28116c0255e7: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/4ef0be66369e1a15ce8b: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/e8b56a1e92c9133ebcd0: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/de3e1a4c6f03fcab2e97: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/3a0362eb1742ac250c1d: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/37f546d43937aba98b62: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/e2c8effc98834ffad93d: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/caf9037151cb3dcba4c3: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/30074e4c94cb3b07f776: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/7f37c2de31224c053e38: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/7f880a624b1fc3d8ad2e: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/7cabce54a4d710b37313: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/0522961f290c51012998: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/7cff33aa7f2488078c8c: No current record on this key: likelihood x instrument is not a planned baseline cell. Kept in the companion v2 catalogue. (evidence)no-current/abcb15986b8ebabbefbb: No current record on this key: scan/experiment/history rows only (never current). Kept in the companion v2 catalogue. (evidence)no-current/b351c674fdc3e083bf5a: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/e3d35b23d1be0342b7d8: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/64ae10651fe338e809e7: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/e5dce29a60b6062d02a2: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/43ed3d6b081673ee6f1e: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/e9aacc78f8268011feff: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/f1b963e99a30d4ee7a7f: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/054577b909c4a27c55da: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/f4a1f86043bfaf914092: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/52fa22cdedf5dfe3d27e: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/747901abe91e8cf66ba8: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/d58f51a179f973738a84: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/2823c0a983875776d0c0: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/5f07d914f57a89946273: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/16692cb897cd5313ba95: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/311338dc332372387f08: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/906dfe7b1c15e4742268: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/02d2602e1b2022f6a6ee: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/d9a1484262b944bbd9b4: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/7373af4cacf924e8bc7a: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/d9b55b76942e62a2996b: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/6082b6baacd171b4426e: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/25bcd73dc6490a64f366: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/efc004dfc5ee3c5418c6: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/abae43b4c2f50a24076a: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/781d0695c9cd126bf3d2: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/9cd77dc68e0000751852: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/caa47b87284e5968862d: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/49470034cab63b4b64c0: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/130c816e748e9500ff11: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/79df5eb9720a1775ebbe: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/f6980fd6171c49ab85c7: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/d6184dffa97755cec6de: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/c4d3bb181b106195d8c6: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/b1e6e94aae18196e10b5: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/93db90031f651a2865fe: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/13c6c796790c86544384: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/e0d6cd05441853b74ee3: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/7a155fa11f8a3bf438e4: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/65d04b6539e893e55d2a: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/d676a7001e8404f308fc: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/fbabe5af862d5d57ecea: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/5b0b37f1b0c54124b299: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/a1a8c9eec7c377ffd263: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/a2a4d4d44f876d1c5764: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/4099e543a398efa65e92: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/fd1c32a4d7217577a927: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/fbd87b11ddc0a91f381c: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/8a2e3526022376745424: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/ed3ff7c29ae68ce4ad38: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/a4c00d29b360c75d4519: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/0ffc1db48feb05c81f95: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/764f45baac5e3ebbfa7a: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)no-current/2f7c6acd428a359eecaa: No current record on this key: laptop/local-GPU rows only (R7: never current). Kept in the companion v2 catalogue. (evidence)
PyAutoFit inference benchmarking is collected on the PyAutoInsight board.
autolens_inference — inference timings
19 results.
All rows: nautilus sampler
| Dataset type | Model | Instrument | Setup | Hardware class | Lens light | Profiling runtime (s) | Seed | Cores (cores) | Wall (s) | Likelihood evals (evals) | Implied time (s / eval) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| imaging | delaunay | hst | numba_cpu_sparse |
hpc_ral_cpu | default | 0.95168 | 1 | 8 | 8648.2 | 38660 | 0.22370 |
| imaging | delaunay | hst | numba_cpu_sparse |
hpc_ral_cpu | light_fixed | — | 1 | 8 | 4563.6 | 34060 | 0.13399 |
| imaging | rectangular | hst | jax_cpu_dense |
hpc_a100 | default | — | 0 | 8 | 32440.9 | 30400 | 1.06713 |
| imaging | rectangular | hst | jax_cpu_dense |
hpc_a100 | default | — | 1 | 8 | 24129.2 | 22020 | 1.09579 |
| imaging | rectangular | hst | jax_cpu_dense |
hpc_a100 | light_fixed | — | 0 | 8 | 21739.0 | 23780 | 0.91417 |
| imaging | rectangular | hst | jax_cpu_dense |
hpc_a100 | light_fixed | — | 1 | 8 | 20092.1 | 20940 | 0.95951 |
| imaging | rectangular | hst | jax_cpu_sparse |
hpc_a100 | default | 1.15558 | 0 | 8 | 36050.5 | 21720 | 1.65978 |
| imaging | rectangular | hst | jax_gpu_dense |
hpc_a100 | default | 0.01328 | 0 | 4 | 558.6 | 23680 | 0.02359 |
| imaging | rectangular | hst | jax_gpu_dense |
hpc_a100 | default | 0.01328 | 1 | 4 | 525.0 | 21640 | 0.02426 |
| imaging | rectangular | hst | jax_gpu_dense |
hpc_a100 | light_fixed | — | 0 | 4 | 490.5 | 22820 | 0.02149 |
| imaging | rectangular | hst | jax_gpu_dense |
hpc_a100 | light_fixed | — | 1 | 4 | 449.7 | 20780 | 0.02164 |
| imaging | rectangular | hst | jax_gpu_sparse |
hpc_a100 | default | 0.02924 | 0 | 4 | 826.9 | 23060 | 0.03586 |
| imaging | rectangular | hst | jax_gpu_sparse |
hpc_a100 | default | 0.02924 | 1 | 4 | 811.5 | 22980 | 0.03531 |
| imaging | rectangular | hst | jax_gpu_sparse |
hpc_a100 | light_fixed | — | 0 | 4 | 1624.9 | 48700 | 0.03336 |
| imaging | rectangular | hst | jax_gpu_sparse |
hpc_a100 | light_fixed | — | 1 | 4 | 1396.9 | 41880 | 0.03336 |
| imaging | rectangular | hst | numba_cpu_sparse |
hpc_ral_cpu | default | 0.56651 | 0 | 8 | 2605.2 | 22920 | 0.11366 |
| imaging | rectangular | hst | numba_cpu_sparse |
hpc_ral_cpu | default | 0.56651 | 1 | 8 | 2562.1 | 22240 | 0.11520 |
| imaging | rectangular | hst | numba_cpu_sparse |
hpc_ral_cpu | light_fixed | — | 0 | 8 | 2329.4 | 24340 | 0.09570 |
| imaging | rectangular | hst | numba_cpu_sparse |
hpc_ral_cpu | light_fixed | — | 1 | 8 | 2076.2 | 21960 | 0.09455 |
Capture, qualification and legacy diagnostics
Project autolens_inference, scope None, read from PyAutoLabs/autolens_inference dashboard/walltime_validation.json at a24e993c; producer revision d58be611; generated 2026-11-02T19:04:05Z; comparison policy None. Project dashboard · receipt.
- Integrity: ok
- Freshness: freshness policy unspecified · evidence time unknown (evidence unknown (no reason given))
- Qualification: 56 full-fit records (walltime-validation carries no qualification flag)
- Full-fit measurements: one Nautilus stage of one SLaM chain per record, never a per-likelihood cost; the sampler is : because the key has no stage
- wall_s is the sampler clock (samples_info.json). implied_s_per_eval = wall_s / likelihood_evals (implied_ms_per_eval the same in ms) is the one per-evaluation number, on every hardware: it deliberately includes the sampler's overhead (Nautilus bookkeeping, batching), so it is the cost a fit actually pays per evaluation, an upper bound on the bare likelihood call
- parallel_efficiency = wall_1 / (n x wall_n) among cores-sweep records (results tag cores_, folded into sampler as ::cores_) identical in key apart from that suffix, relative to the group's 1-core record; null without a 1-core record and on every record outside a sweep: 0 of 56 records carry it (0 cores-sweep record(s))
- parity_status is not_assessed unless a declared ruling of record names the run (parity_basis); the exporter computes no parity verdict
- 32 of 56 records pair with a profiling-summary@3 runtime record of the lens snapshot cached in catalogue/pulse_lens_runtime_reference.json on an exact (likelihood, instrument, setup_id, host_class, model_variant) match, the current record first, then the one whose size bin equals the run's source pixels, then the newest (profiling_status says which); a stage is paired under the likelihood it evaluates: a row's likelihood_evaluated declaration when its stage makes one (null = none, never paired), else the row's likelihood, with the stages that solve no inversion never paired; profiling_per_call_s is Pulse's per-call time of that record, predicted_ms_per_eval the same in ms; unmatched: 7 no profiling runtime record with model_variant light_fixed; 10 no profiling runtime record with setup_id jax_cpu_dense_fp64; 7 stage has no inversion (parametric); no matching profiling likelihood
- 56 record(s) at release pin 2026.10.17.1 are adopted as day-zero evidence by the human ruling of 2026-11-02 ("day zero may span versions where the code changes do not affect run times"), not re-run on the day-zero tag
- size_match compares the run's source pixels (rectangular mesh_shape product, Delaunay mesh_pixels Hilbert vertices) with the profiling record's size bin: 32 match, 0 differ (a different-size likelihood than the run's), 0 unknown because a side records no count
- 17 CPU-backend record(s) keep host_class hpc_a100 from their config prefix: the row records no host that proves a RAL CPU node
- 6 stage(s) omitted: stages loaded from another config (--stages-from) are not this run's fit
- 33 stage(s) omitted: non-default model-variant stages identical to the default run's (one --lens-light both job, one fit) are listed once, under default
- Designation: weak/isothermal standard gpu_a100
- Designation: weak/isothermal standard cpu_many_core
- Designation: point_source_source/source_plane standard gpu_a100
- Designation: point_source_source/source_plane standard cpu_many_core
- Designation: point_source_image/image_plane standard gpu_a100
- Designation: point_source_image/image_plane standard cpu_many_core
- Designation: multi_galaxy/rectangular standard gpu_a100
- Designation: multi_galaxy/rectangular standard cpu_many_core
- Designation: multi_galaxy/mge standard gpu_a100
- Designation: multi_galaxy/mge standard cpu_many_core
- Designation: multi_galaxy/delaunay standard gpu_a100
- Designation: multi_galaxy/delaunay standard cpu_many_core
- Designation: multi_dataset/delaunay standard gpu_a100
- Designation: multi_dataset/delaunay standard cpu_many_core
- Designation: interferometer/rectangular standard gpu_a100
- Designation: interferometer/rectangular standard cpu_many_core
- Designation: interferometer/mge standard gpu_a100
- Designation: interferometer/mge standard cpu_many_core
- Designation: interferometer/delaunay standard gpu_a100
- Designation: interferometer/delaunay standard cpu_many_core
- Designation: imaging/rectangular standard gpu_a100
- Designation: imaging/rectangular standard cpu_many_core
- Designation: imaging/mge standard gpu_a100
- Designation: imaging/mge standard cpu_many_core
- Designation: imaging/delaunay standard gpu_a100
- Designation: imaging/delaunay standard cpu_many_core
- Designation: imaging/delaunay_nn standard gpu_a100
- Designation: imaging/delaunay_nn standard cpu_many_core
- Designation: group/rectangular standard gpu_a100
- Designation: group/rectangular standard cpu_many_core
- Designation: group/mge standard gpu_a100
- Designation: group/mge standard cpu_many_core
- Designation: group/delaunay standard gpu_a100
- Designation: group/delaunay standard cpu_many_core
- Designation: datacube/delaunay standard cpu_many_core
- Designation: cluster/source_plane standard gpu_a100
- Designation: cluster/source_plane standard cpu_many_core
- Designation: cluster/image_plane standard gpu_a100
- Designation: cluster/image_plane standard cpu_many_core
- Keep --xla_cpu_multi_thread_eigen=false for the 2d JAX CPU legs (jaxlib 0.11.2 deadlock)
- Keep the 1.0″ PointSolver starting grid for cluster fits, with a validation check
- Gate the symmetric direct_conv kernel at work fraction 0.7, with ymin column ordering
- Route interferometer curvature by a calibrated two-constant cost model
- Exclude zero-weight mappings from AdaptSplit pixel signals on Delaunay meshes only
- Keep Jacobi PDIP as the Mapper default and raw+polish as the MGE-only default