Skip to content

Latest commit

 

History

History
646 lines (497 loc) · 105 KB

dashboard.md

File metadata and controls

646 lines (497 loc) · 105 KB

PyAutoPulse — profiling dashboard

Profiling Check In

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).

Active campaigns

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.

Campaign evidence

Active tasks

  • 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).

Campaign evidence

Active tasks

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.

Campaign evidence

Active tasks

  • 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.

Campaign evidence

Active tasks

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).

Campaign evidence

Active tasks

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.

Campaign evidence

Active tasks

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.

Campaign evidence

Active tasks

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.

Campaign evidence

Active tasks

  • MGE likelihood_breakdown steps are cumulative and linear_gaussians is 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).

Campaign evidence

Active tasks

  • 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.

Campaign evidence

Active tasks

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.

Campaign evidence

Active tasks

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.

Campaign evidence

Active tasks

Interactive board

Profiling Timings

PyAutoFit

autofit — choose a setup

Interactive setup browser

analytic_gaussian
  • conjugate hierarchical gaussian: unspecified
gaussian_1d_ep
  • gaussian, centre shared across datasets: unspecified
gaussian_x1
  • gaussian: unspecified
Capture, qualification and legacy diagnostics

fit

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

fit / limitations

  • 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.

PyAutoLens

autolens — current runtime setups

Interactive setup browser

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.

Extra Information

Capture, qualification and legacy diagnostics

lens

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)

lens / limitations

  • 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).

lens / excluded by the producer

  • 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)

Inference Timings

PyAutoFit

PyAutoFit inference benchmarking is collected on the PyAutoInsight board.

PyAutoLens

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

lens-walltime

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)

lens-walltime / limitations

  • 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

Decision History