Commit f9b28fc
Multi-thread the geometry doctor's reachability audit
This makes the reachability audit use every core and makes its answer
independent of how many it used.
- The tree walk is separated from the sampling. The walk collects one
representative placement per node object; the placements are then sampled in
parallel, each thread with its own ROOT navigator.
- Each placement draws from its own generator, seeded from its index. A single
shared generator made every placement's numbers depend on the order the others
were sampled in.
- The navigator's answer is compared node by node rather than as a path string,
which also drops the path formatting from the inner loop.
- 1000 samples on the full ALICE geometry: 158 s on one core before, 68 s on one
core now, 3.1 s on 128. The report is byte-identical at every thread count.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent d4c9de5 commit f9b28fc
1 file changed
Lines changed: 207 additions & 112 deletions
0 commit comments