From effa0c4b31f846e89c184a4ef16476b0dd558221 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 8 Oct 2026 20:42:30 +0100 Subject: [PATCH] pulse: timing_noise_audit fix phase 2 PR open (autolens_profiling#405); correct the two-repo claim The live lens feed is the v2 catalogue.json (qualified hard-false since the 2026-10-05 registry switch), so the v1 qualify()/drift fix needed no Pulse reader change. Carry-forward to setup_baseline: reuse the producer's reference-host-class rule when v2 starts qualifying. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_016CCA6BtzDgw16aUaVuzzL9 --- campaigns.yaml | 22 +++++++++++----------- dashboard.html | 2 +- dashboard.md | 6 +++--- tasks/setup_baseline_campaign.md | 4 ++++ tasks/timing_noise_audit.md | 11 +++++++++++ 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/campaigns.yaml b/campaigns.yaml index 9ed0d48..17875af 100644 --- a/campaigns.yaml +++ b/campaigns.yaml @@ -77,10 +77,10 @@ campaigns: title: Measurement reliability and profiling tools status: active updated: '2026-10-08' - next: 'timing_noise_audit phase 1 merged (autolens_profiling#402): inventory of 31 timing assertions/gates, 10 UNSAFE-SILENT - including the dashboard qualify() flag Pulse relies on (pulse/catalogue.py requires qualified: true). Fix phase (2) - will change the profiling-summary contract - Pulse must coordinate. New campaign page wiki/campaigns/measurement_tools.md. - Other tasks unchanged and unissued.' + next: 'timing_noise_audit fix phases (1) and (2) done (autolens_profiling#404 merged; #405 open, awaiting /prm). Correction + 2026-10-08: the live Pulse lens feed is dashboard/catalogue.json (profiling-summary@2, registry switched 2026-10-05 + in 3c7bed2), whose producer hard-codes qualified: false, so the v1 qualify() gap never reached Pulse live and fix (2) + needed no Pulse change. Next: fix phase (3) INCONCLUSIVE for go/lever rules. Other tasks unchanged and unissued.' evidence: https://github.com/PyAutoLabs/autolens_profiling/blob/main/wiki/campaigns/measurement_tools.md - id: autofit title: PyAutoFit profiling bootstrap @@ -139,14 +139,14 @@ tasks: priority: high path: tasks/timing_noise_audit.md updated: '2026-10-08' - next: 'Phase 2 MERGED 2026-10-08 as autolens_profiling#404: one abba_overhead_verdict (excess ms vs the 12 ms budget, - t-interval, PASS/FAIL/FAIL_GROSS/INCONCLUSIVE) serves the CI test and the fixed-light numba cell; promotion requires - PASS; 6/17 published RAL rows re-judge INCONCLUSIVE (recorded, no JSON rewritten). Human decision: the ~16 ms CI - fixture cannot resolve 12 ms, so the CI test is the coverage + gross-breakage guard. Inventory now 13 SOUND / 9 FRAGILE / - 9 UNSAFE-SILENT. Next: fix phase (2) dashboard qualify()/drift wording - a profiling-summary contract change that needs - a paired PyAutoPulse reader change (plan as a two-repo task); then (3) INCONCLUSIVE for go/lever rules.' + next: 'Fix phase (2) PR OPEN 2026-10-08 as autolens_profiling#405 (awaiting /prm; Heart YELLOW reasons human-acknowledged): + dashboard qualify() leaves laptop rows, rows without a load average and hpc rows without a host unqualified with a + reason; a within-2x comparison is flat only when both endpoints carry a repeat summary (none do yet), else insufficient; + drifted/improved keep status with a single-sample caveat (human decision 2026-10-08). Effect on summary.json: qualified + 2 -> 2, flat 4 -> 0, insufficient 135 -> 139. Not a Pulse contract change (live feed is v2 catalogue.json, qualified + hard-false). Next after merge: fix phase (3) INCONCLUSIVE for go/lever rules, tie sets instead of argmax.' issue: https://github.com/PyAutoLabs/autolens_profiling/issues/362 - evidence: https://github.com/PyAutoLabs/autolens_profiling/pull/404 + evidence: https://github.com/PyAutoLabs/autolens_profiling/pull/405 - id: mge_likelihood_breakdown_steps_are_cumulative_an campaign: measurement-tools title: MGE likelihood_breakdown steps are cumulative and `linear_gaussians` is reported as 0 diff --git a/dashboard.html b/dashboard.html index 5f5c600..3d5b4e2 100644 --- a/dashboard.html +++ b/dashboard.html @@ -645,7 +645,7 @@ Work on GitHub: - PyAutoPulse: https://github.com/PyAutoLabs/PyAutoPulse - autolens_profiling: https://github.com/PyAutoLabs/autolens_profiling
Last updated 2026-10-08 17:28:55 UTC
↻ Update

-

Active campaigns

CampaignStatusLinks
Setup baseline collection and scientific acceptance
1 task · next step

Specification merged as draft v1 (autolens_profiling#385, 2026-10-06; issue #384 closed). Six unknowns remain: no frozen revisions/env lock; no collection authorization/window; hardware/affinity identity unselected; each cell needs complete settings, input hashes, witness + tolerances; compile per-cell builder unavailable; proposed fp64/mixed coverage is not evidence of support. Human freezes the manifest before separately authorizing collection.

Reviewed 2026-10-07

Active tasks

Freeze the setup baseline specification, then collect and review evidence↗

needs-decision · high

Specification merged as draft v1 (autolens_profiling#385, 2026-10-06). Human resolves the six recorded unknowns and freezes the specification; collection requires separate compute authorization. The report prepares evidence for human scientific review and never promotes baselines. CPU production arrays use ral only.

needs-decision
Point-source image plane · CPU
1 task · next step

Phases 1–4 shipped; completion evidence merged (autolens_profiling#373, 2026-10-04). Closing the epic is the human's call. Owed leftovers (RAL cleanup, test move, register_model grad-zero prompt, CI smoke cells, constant_folding A/B, nopad deletion, quiet re-runs) are in the Mind draft point_source_cpu_campaign_owed_leftovers.md. RAL leftover folders not re-listed 2026-10-07 (unverified).

Reviewed 2026-10-07

Active tasks

active
Point-source image plane · A100
1 task · next step

Phase 0+1 shipped. Forward-mode gradient NaN (PyAutoLens#767) fixed by PyAutoLens#768 (merged 2026-10-04) and released in 2026.10.7.1 (correctness). Remaining human decision: authorize the autolens_inference image-plane fit measurement. Heart unit-test timing rose on the rewritten #768 test file; not a controlled cost comparison (gradient_cost_probe is the instrument).

Reviewed 2026-10-07

Active tasks

needs-decision
Point-source source plane
2 tasks · next step

Core complete; parked. Nautilus leaf autolens_inference#17 merged 2026-10-02; no gradient-sampler leaf yet, so Blackjax stays parked (admission not met). Warm-up task option (a) merged as autolens_profiling#374 (2026-10-04); imaging cells and a release sweep remain.

Reviewed 2026-10-07

Active tasks

Runtime cells' A100 `single_jit` includes the post-compile warm-up — source-plane 0.642 ms vs a steady 0.267 ms on the same node↗

active · low

Option (a) merged (autolens_profiling#374, 2026-10-04): full_pipeline_single_jit_median_ms (p10/p90) beside unchanged single_jit; GPU headline labelled "first block after compile". Imaging release-sweep cells not wired. No release sweep on main yet (results/ commits since 2026-10-04: #375 streaming rows, a README refactor), so the new field has no sweep rows.

parked
Cluster PointSolver robustness and performance
2 tasks · next step

Unchanged since 2026-09-27; nothing issued or claimed. Wiki still points at the removed Mind draft (now Pulse tasks/). Pick one bounded phase: observable-overflow invalid-result policy + CI witness, or a representative-data baseline cell.

Reviewed 2026-10-04

Active tasks

active
Interferometer likelihood and streaming
4 tasks · next step

Decision matrix complete: last cell merged (autolens_profiling#372, 2026-10-04; 1.59e-3 nat CPU/A100 gap accepted by the human). Streaming scaling phase 1 CPU rows merged (#375); 1e8 CPU and A100 rows need compute authorization. fnnls memo back-off released in 2026.10.7.1 (PyAutoArray#615); the #332 after-measurement is owed. Curvature preload and W~ FFT tasks unstarted.

Reviewed 2026-10-07

Active tasks

active
Linear-solver accuracy and cost
0 tasks · next step

Programme question CLOSED by decision 2026-10-08 (decisions/linear-solver-mapper-default-jacobi.md): keep Jacobi as the Mapper default, raw+polish for MGE-only, no library change. Phase 5 merged as autolens_profiling#401 (766f8202; #400 superseded, corpus files out of git with sha256 + regenerate in the manifest, copies on RAL and the laptop); phases 3a/3b/4a merged earlier (#394, #396, #398). Open evidence gaps, not tasks: wide-prior Mapper vectors, an interferometer corpus, the n~1500 CPU batched/unbatched 4e-13 difference, rectangular criterion-2 failures. Campaign stays active for the release re-runs of the solver cells; nothing issued.

Reviewed 2026-10-08

Active tasks

No open tasks.

active
Production imaging and likelihood breakdown
3 tasks · next step

No new results since the pin. Over-sampling phase 1: add --instrument production presets to the JAX Delaunay cells (CPU smoke only); PyAutoArray#606 S/N over-sampling helper (in 2026.10.4.1) is new context. Post-certified Blocked-by is stale (resolved 2026-09-27).

Reviewed 2026-10-04

Active tasks

active
Measurement reliability and profiling tools
9 tasks · next step

timing_noise_audit phase 1 merged (autolens_profiling#402): inventory of 31 timing assertions/gates, 10 UNSAFE-SILENT including the dashboard qualify() flag Pulse relies on (pulse/catalogue.py requires qualified: true). Fix phase (2) will change the profiling-summary contract - Pulse must coordinate. New campaign page wiki/campaigns/measurement_tools.md. Other tasks unchanged and unissued.

Reviewed 2026-10-08

Active tasks

Audit timing tests and profiling gates for measurement noise↗

active · high

Phase 2 MERGED 2026-10-08 as autolens_profiling#404: one abba_overhead_verdict (excess ms vs the 12 ms budget, t-interval, PASS/FAIL/FAIL_GROSS/INCONCLUSIVE) serves the CI test and the fixed-light numba cell; promotion requires PASS; 6/17 published RAL rows re-judge INCONCLUSIVE (recorded, no JSON rewritten). Human decision: the ~16 ms CI fixture cannot resolve 12 ms, so the CI test is the coverage + gross-breakage guard. Inventory now 13 SOUND / 9 FRAGILE / 9 UNSAFE-SILENT. Next: fix phase (2) dashboard qualify()/drift wording - a profiling-summary contract change that needs a paired PyAutoPulse reader change (plan as a two-repo task); then (3) INCONCLUSIVE for go/lever rules.

active
PyAutoFit profiling bootstrap
1 task · next step

Skeleton merged: autofit_profiling#1 (86c77345, 2026-10-07T21:17Z; AGENTS, hooks, hpc/sync, lint) under search-extensibility B1 (PyAutoMind#492). B1 docs legs PyAutoHeart#292 and .github#34 still open 2026-10-08. Porting unstarted; no producer registration until profiling-summary@2 is published (B4a).

Reviewed 2026-10-08

Active tasks

autofit_profiling: bootstrap the repo + general PyAutoFit profiling epic

ready · normal

Adopted by the search-extensibility epic (Mind draft/research/autofit/search_extensibility_epic.md); skeleton merged as autofit_profiling#1 (2026-10-07T21:17Z) under PyAutoMind#492 (B1). Next is B4a (search.fit breakdown exporter, Pulse fit row, epic-1 bottleneck table), then B4b (EP/graphical baseline port). No producer registration until profiling-summary@2 is published (B4a).

ready
Critical curves and evaluation grids
0 tasks · next step

Phase 3b cap fix shipped: PyAutoGalaxy#646 released in 2026.10.4.1 and autolens_workspace_test#343 merged 2026-10-04. Remaining per the wiki Next line: investigate seed coverage/path completion before cluster engine selection (human picks whether to scope it). Wiki page itself is stale (last edited 2026-10-02, still says #646 open).

Reviewed 2026-10-07

Active tasks

No open tasks.

needs-decision
Certified positive solver
0 tasks · next step

Parked by choice; wiki unchanged since ab1e4fd (2026-09-27). Its three library/workspace Mind drafts remain in Mind. Retain parked; read the project ledger before proposing new work.

Reviewed 2026-10-04

Active tasks

No open tasks.

parked

Open means tracked, not necessarily running. Full ledger ↗

Profiling Results

Decision History

Decision History