Grid simulation, where only a small region changes each step
A time-stepped simulation on a fixed grid updates a stencil at every cell, every step. Often only a small patch changes, such as a moving source, a front, or a localized boundary. Delta Routing recomputes the cells that changed and keeps the rest from the previous step.
What was measured
Five-point stencil on a 512 by 512 grid, 200 steps. Each step changes a square patch of the interior. The baseline evaluates the full grid every step, in the same process.
| Cells changed per step | Delta Routing vs full recompute | Reusing the schedule vs rebuilding it |
|---|---|---|
| 0.1% | 38.7 to 39.6 times faster | 2.32 to 2.44 times faster |
| 6.3% | 1.6 to 1.7 times faster | 1.66 to 1.73 times faster |
| 25.2% | Full recompute is faster | 1.66 to 1.70 times faster |
Final states agree with the full recompute to a residual of 9.2 times 10 to the minus 15 at most.
Conditions
- Host: Intel Core i7-1165G7, one pinned core, performance governor, turbo disabled.
- Build: g++ 13.3.0, -O3 -march=native, Linux 6.8.0-138.
- Baseline: full five-point stencil evaluation every step. The schedule-rebuild arm separates the gain from reusing the schedule from the gain from changing the arithmetic.
- Changes: a square patch of the interior changes each step, with 1e-3 added to every patch entry. The percentages are of the 510 by 510 interior.
- Scope: a standalone probe with synthetic changes. It has not been run on a production grid model.
Where this applies
Use Delta Routing when a stencil or fixed operator is applied many times, and the change in each step touches a small, clustered part of the grid. The update measured faster at 0.1% and 6.3% of the grid changed, and full recompute measured faster at 25.2%. The point between them has not been measured, so the assessment measures it on your grid.