Skip to content

bench: parallel customization scaling ladder + conclusions - #4

Merged
VladPr merged 1 commit into
mainfrom
bench/customize-parallel-scaling
Jul 9, 2026
Merged

bench: parallel customization scaling ladder + conclusions#4
VladPr merged 1 commit into
mainfrom
bench/customize-parallel-scaling

Conversation

@VladPr

@VladPr VladPr commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Keeps and extends the customize benchmark with a large-grid parallel-scaling ladder, and records the conclusions.

Measured (Apple Silicon, 18 cores; nested-dissection-ordered grids; customize timed at 1 thread vs all cores):

Grid Nodes 1 thread 18 threads Speedup
128² 16,384 20.2 ms 20.7 ms ~1.0× (none)
256² 65,536 145.8 ms 78.7 ms 1.85×
810² 656,100 4.77 s 1.71 s 2.79×

6.6M runs but is memory-bound (~12.5 GB, swapping) on this box; 66M (~125 GB) is infeasible here — a true continental figure needs a bigger-memory host or the real road corpus.

Conclusions (full writeup in docs/customize-parallel-scaling.md): parallel customization is a real but modest, large-graph win — negligible below ~tens of thousands of nodes, ~2–3× at hundreds of thousands, sub-linear in cores (level-synchronized barrier + sparse top of hierarchy), and no small-graph regression. Grids are a pessimistic proxy for road networks.

The bench is opt-in (CCH_BENCH_SIDE=810 cargo bench --bench cch -- customize_large) so plain cargo bench stays fast. README performance section updated with the measured numbers.

Add an opt-in large-grid customize bench (CCH_BENCH_SIDE selects sizes; builds
each CCH once and times customize under a 1-thread vs all-cores rayon pool).
Measured on 18 cores: ~1.0x at 16k nodes, 1.85x at 65k, 2.79x at 656k — parallel
customization is a large-graph win, sub-linear in cores, no small-graph
regression. Full method/numbers in docs/customize-parallel-scaling.md; README
performance section updated with the measured scaling.
@VladPr
VladPr merged commit 52bdc75 into main Jul 9, 2026
2 checks passed
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