Skip to content

results(searches): Phase 2 NSS scan wave 1 — H2.1 confirmed (inner-steps axis) - #156

Open
Jammy2211 wants to merge 3 commits into
mainfrom
feature/nss-phase2-scan-wave1
Open

results(searches): Phase 2 NSS scan wave 1 — H2.1 confirmed (inner-steps axis)#156
Jammy2211 wants to merge 3 commits into
mainfrom
feature/nss-phase2-scan-wave1

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Follow-up slice to #149/#150 (Phase 2 entry + CP-2 anchor). Two A100 arms varying only num_mcmc_steps vs the anchor (n_live 200, num_delete 50, dlogz −3, seed 42), plus the wave-1 submit scripts and the phase_02 ledger update.

Result — H2.1 confirmed as pre-registered

inner steps logZ bias vs Nautilus 31690.5 max logL sampler wall evals
5 (anchor) 31698.85 +8.4 31786.62 839.6 s 234,498
30 (=2d) 31691.20 +0.7 31785.83 4,218.6 s 1,492,747
45 (=3d) 31690.04 −0.5 31786.35 6,341.3 s 2,264,857

The fork-era +7–13-nat logZ bias is inner-kernel under-mixing: it falls monotonically with inner steps and brackets the Nautilus reference at 3d. All max logL within the ≤2-nat tolerance of the truth bar. Both runs verified genuine (current version stamp, plausible walls, no resume-trap marker).

Gate A consequence: evidence-correct NSS (inner ≥ 2d) costs ~5–7.6× Nautilus's wall on the same tier at these knobs — the wall-time case moves to the num_delete/n_live axes (wave 2, at inner=2d; plan in phase_02_nss_mainline/RESULTS.md).

Mechanics

  • Arm encoded in --config-name (hpc_a100_fp64_inner30/45): separates the results artifacts, the autofit output dirs, and the recorded config_name in one knob; all five science knobs verified to enter the search identifier (NSS.__identifier_fields__), closing the completed-fit resume trap that bit the anchor.
  • ruff + build_readme.py --check clean; dashboard row regenerated.

🤖 Generated with Claude Code

https://claude.ai/code/session_019s6eAYCjAvn7tRNetAFadP

Jammy2211 and others added 3 commits August 23, 2026 12:31
Two RAL A100 sbatch scripts for the Phase 2 mainline-af.NSS scan
(inference programme issue #149), both testing H2.1 — that the +8.4-nat
logZ bias the 2026-08-23 anchor row confirmed at inner=5 is slice-MCMC
under-mixing, removable at num_mcmc_steps >= 2d (d = 15 for the MGE cell):

  inner30  num_mcmc_steps=30 (2d)  est ~5203 s  --time 2:30:00
  inner45  num_mcmc_steps=45 (3d)  est ~7721 s  --time 3:30:00

Every other knob matches the anchor (n_live 200, num_delete 50,
dlogz -3, seed 42, unchunked), so the diff is inner steps only.
Estimates scale the anchor's 839.6 s sampler wall linearly in inner
steps and add ~45 s viz + ~120 s compile margin; --time is ~1.5x.

Artifact isolation uses the existing --config-name lever only (no
framework change): config_name sets both the results basename
(_profile_cli.resolve_output_paths) and the af.NSS search ``name``
(searches/_samplers.build_nss), so each arm writes its own
hpc_hpc_a100_fp64_inner<N>.json and fits under its own output/
directory. num_mcmc_steps is additionally an NSS __identifier_fields__
entry, so the autofit identifier differs and no arm can silently resume
the anchor's completed fit.

Prepared for review only — not submitted.
…p mixing (#149)

RAL jobs 338492/338493 (A100 fp64, fork knobs except num_mcmc_steps):
inner=30 (2d) collapses the +8.4-nat logZ bias to +0.7; inner=45 (3d)
brackets the Nautilus reference at -0.5. Every maxL within tolerance of
the truth bar; evals linear in inner steps; wall slightly sub-linear.
Evidence-correct NSS at these knobs costs ~5-7.6x Nautilus's A100 wall,
so Gate A's wall-time case moves to the num_delete/n_live axes (wave 2,
at inner=2d).

Includes the wave-1 submit scripts (arm encoded in --config-name so
artifacts and autofit identifiers stay disjoint) and the phase_02
RESULTS.md wave-1 section + wave-2 plan.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_019s6eAYCjAvn7tRNetAFadP
Four RAL A100 sbatch scripts for the Phase 2 mainline-af.NSS scan, all
holding inner steps at 30 (2d — the operating point wave 1 established,
logZ 31691.20 vs Nautilus 31690.5) and moving the wall-time axes:

  inner30_nd20   n_live  200  num_delete  20 (0.1m)  est ~6155 s  --time 3:00:00
  inner30_nd100  n_live  200  num_delete 100 (0.5m)  est ~3667 s  --time 2:00:00
  inner30_n500   n_live  500  num_delete 125 (.25m)  est ~10712 s --time 5:15:00
  inner30_n1000  n_live 1000  num_delete 250 (.25m)  est ~21258 s --time 12:00:00

Estimates scale the wave-1 inner30 row (n200/nd50: 4218.6 s sampler,
1,492,747 evals, 2.826 ms/eval) through the nested-sampling replacement
count R = dlogX * m * g(k/m), g(x) = x / -ln(1-x): total replacements are
~linear in n_live and only weakly dependent on num_delete (g = 0.949 /
0.869 / 0.721 at k/m = 0.1 / 0.25 / 0.5). Wave-1 evals (6.37x, 9.66x for
inner 30, 45 vs the nominal 6x, 9x) support the inner-invariance of R.
--time is ~1.7x each estimate, except n1000 whose 1.7x crosses 10 h and
is set to 12:00:00. nd20 additionally carries an assumed 1.30x
utilisation penalty (2.5x narrower vmap, 2.73x more outer iterations) —
the one unmeasured factor in the set.

chunk_size stays unset on every arm: peak inner-step memory scales with
num_delete, not n_live, and the recorded 937 MiB at num_delete=50
extrapolates to ~4.58 GiB at num_delete=250 — ~6% of an 80 GB A100.

Naming follows wave 1: --config-name sets both the results basename and
the af.NSS search name, and every moved knob is an NSS
__identifier_fields__ entry, so no arm can clobber or resume another.

Prepared for review only — not submitted.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant