You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ledger (90): amr_bat_pad at cap 96 (negative: wait up on every rank, wall at the floor) and cap 32 (null) -- an operating-point choice, default stays off
Copy file name to clipboardExpand all lines: docs/documentation/amr_action_plan.md
+51Lines changed: 51 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -226,6 +226,57 @@ possible while AMR aborts on the target machine at 1 rank, and every increment b
226
226
on a compiler that does not reproduce it. It also means the ladder should add a CCE arm as soon as one
227
227
exists, or the same class of breakage will keep accumulating undetected.
228
228
229
+
## 2026-09-06 (90) — amr_bat_pad AT TWO OTHER OPERATING POINTS: NEGATIVE at cap 96 (rhs -3.5 to -5%%, MPI wait +13 to +14%% on every rank in both reps, wall up by the size of the rep spread), NULL at cap 32 (batches -2%%, rhs flat, wall +2%% in one rep, inside the floor) -- the default stays off, and the flag is an operating-point choice
230
+
231
+
**Why this was run.** Ledger 89 made flipping the default conditional on a second operating point. The same binary
232
+
(74764791), harness (amr-bench/padab.sh with CAP=), hold (406199, k004-001, 01:12-02:23) and protocol (60-step
233
+
identity pair, then 40/240 from-scratch pairs OFF/ON, batch logs on; two reps at cap 96, one at cap 32 within the
234
+
hold's remaining time).
235
+
236
+
**Cap 96 (83 boxes, 9-12 live blocks per rank of 1.7-2.7 Mcells).** Identity: DIFFER by cmp on both 60-step restart
237
+
files; the magnitude was not measured (the harness removes the identity restart files after comparing) and is
238
+
expected to be ledger 89's roundoff class by the same mechanism, unverified. Padding did what it does to the batches
239
+
-- 42,000 -> 31,920 over 240 steps (-24%%), singles 33,720 -> 18,720; level-1 batches from 78%% singles at 29-32 ms to
240
+
n = 2-4 at 24-27 ms per member; no batch larger than four members forms at this operating point -- and the rhs
241
+
improved on one instrument ([phase-rank], 240 steps): per rank 165-219 -> 159-203 s (max/min 1.33 -> 1.27), summed
242
+
1,482 -> 1,408 s (-5.0%%) and 1,463 -> 1,412 s (-3.5%%). But the wall rose in both interleaved pairs: 497.5 -> 517.0 s
243
+
and 476.6 -> 491.3 s (+3.9%% / +3.1%%, i.e. +0.10 / +0.07 s per marginal step), which is the size of the rep spread
244
+
itself (OFF reps 4.4%% apart, ON 5.2%%, and the arms overlap across reps), so the wall magnitude is at the floor; and
245
+
rep 1's rise is almost entirely a regrid excursion (+19.8 s of a +19.5 s total, synchronous across ranks), so rep 2
246
+
carries the wall claim alone. The robust signal is the MPI wait: [mpiwait] TOTAL 184 -> 210 s and 166 -> 188 s over
247
+
240 steps (+14%% / +13%%), rising on all 16 rank-reps; the rows that rose in both reps are b:halo (+3.5 / +3.4 s),
248
+
gather (+0.6 / +1.8), reflux (+6.4 / +4.1) and restr (+2.9 / +3.8); seam and pgather fell in rep 1 and rose in rep 2.
249
+
So at this operating point an rhs saving of 6-9 s per 240 steps is met by +21-26 s of wait, and the slowest rank's
250
+
rhs fell ~16 s in both reps while ~30 s entered the critical path elsewhere (rep 2: halo +5.7 on all ranks, coarse
251
+
+4.2, reflux +4.2, restr +3.8, b:halo +3.5). The mechanism is NOT identified. Two candidates, both testable and
252
+
neither discriminated by these logs: (a) progress granularity -- a padded batch of up to 4 x 2.3 Mcells is ~100 ms
253
+
of uninterrupted advance, so ranks reach their exchanges in fewer, larger jumps and line up worse (the largest wait
254
+
rise sits on the rank whose rhs fell most, which is consistent with this and with any rhs-only speed-up); (b) device-
255
+
memory pressure from the larger slab (no device-memory line exists in the logs; the swap phase, which installs the
256
+
slab, is flat per call at 0.36-0.39 ms). Neither is a claim; the negative is.
257
+
258
+
**Cap 32 (1,059 boxes, 129-139 live blocks per rank of up to 0.18 Mcells; one rep, the hold's remaining time).**
259
+
Identity: DIFFER by cmp, magnitude not measured, as at cap 96. Batching already saturates at the eight-member cap here (ledger 88), so
260
+
padding has almost nothing to group: batches 109,440 -> 107,160 (-2%%), singles 9,600 -> 9,660, rhs per rank
261
+
summed 1,804 -> 1,795 s (flat), rhs max/min 1.10 -> 1.17, [mpiwait] reflux mean 28.4 -> 33.2 s, TOTAL wait 125 ->
262
+
136 s, marginal step 2.195 -> 2.242 s (+2.1%%, one pair against a ~0.1 s/step floor). A null on the mechanism (no
263
+
batches to remove); the wait rise here has a different shape from cap 96's (concentrated on rank 0, +21.9 s of
264
+
which reflux +17.7, while rank 4 fell), unresolved at n = 1.
265
+
266
+
267
+
**Review.** Independent review before this was written: no blocker; its corrections (the wait rows were phase
268
+
values, the wall rise is at the floor and rep 1's is a regrid excursion, no batch above four members at cap 96, per
269
+
240 steps not 200, the identity magnitude unmeasured for these caps, the blocks-per-rank rule unsupported) are
270
+
applied.
271
+
272
+
**Verdict.** The flag stays default off. Three operating points, one binary, one hold: cap 64 -12 to -16%% of the
273
+
steady step (ledger 89), cap 32 null, cap 96 a wait rise on every rank with the wall at the floor. It pays where blocks are many and small enough that the per-batch fixed cost
274
+
dominates and the mesh has an extent zoo, and costs where blocks are few and large. The three points order by the
275
+
single-member fraction the flag removes -- cap 96 0.80 -> 0.59 (lost), cap 64 0.55 -> 0.12 (won), cap 32 0.09 -> 0.09
276
+
(null) -- so a default rule cannot be a block-count threshold from these points (nothing was measured between 12
277
+
and 25 blocks per rank, and the null at 129-139 says more blocks does not predict a gain); the flip would need a
278
+
tested rule between the cap-96 and cap-64 operating points and the CCE/NVHPC lanes, a later increment. The cap-64 gain stands as measured.
279
+
229
280
## 2026-09-06 (89) — THE PADDED BATCH A/B (pre-registered in ledger 88): batches -58%%, single-member batches -91%%, summed rhs -16%%, reflux wait -31%% / -45%%, and the steady marginal step -12%% / -16%% (-0.27 / -0.38 s/step) -- more than pre-registered; the rank spread halves but does not close, and the identity gate moves to tolerance + conservation because batching itself was never bit-identical
230
281
231
282
**Identity, first, because it changed the gate.** The 60-step restart pair (cap 64, amr_device_pack = T) DIFFERS between
0 commit comments