TimeWarp.Examples.NeighbourPHOLD (TimeWarp v0.1.0)

Copy Markdown View Source

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.