PHOLD with locality — the workload §12's placement lever needs.
Uniform PHOLD picks targets uniformly at random, so every placement is equivalent by symmetry: each LP talks to every other equally, and co-locating any subset changes nothing. That structurally cannot show whether placement matters — you'd measure a flat line and wrongly conclude it doesn't.
Each LP has neighbours (predecessor and successor in the id ring). The
locality knob is the probability a send goes to a neighbour rather than a
uniformly-random LP: locality: 1.0 is fully neighbour-biased, locality: 0.0
is plain uniform PHOLD. It is a model knob (who an LP talks to) and is distinct
from placement (whether those neighbours share a node) — the two form a 2×2:
| | contiguous placement | scattered placement |
| neighbour-biased | low cross-node | high cross-node |
| uniform | flat | flat |The uniform row being flat under both placements is the control that proves the placement lever is real and not an artifact of the placement code.
Exactly one follow-up per event regardless of locality (only the target
changes), so the event population — hence rollbacks / committed — stays
comparable across the whole sweep. Deterministic and pure (all choices from a
carried TimeWarp.Rand), so it runs under the sequential oracle.