perf: speed up fat-tree routing and executor handoff#94
Merged
Conversation
…ne\n\nResult: {"status":"keep","wall_s":36.7}
…t: {"status":"keep","wall_s":10.89}
…esult: {"status":"keep","wall_s":10.04}
…"status":"keep","wall_s":9.87}
…cit A* neighbor generation\n\nResult: {"status":"keep","wall_s":8.73}
…ast path\n\nResult: {"status":"keep","wall_s":8.46}
…ree routing fast path\n\nResult: {"status":"keep","wall_s":8.11}
…rking\n\nResult: {"status":"keep","wall_s":8.05}
…er window\n\nResult: {"status":"keep","wall_s":8.01}
…ult: {"status":"keep","wall_s":8}
…n\nResult: {"status":"keep","sim_wall_s":9.52}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR lands the performance work from the autoresearch branch and captures the follow-on benchmark findings.
Kept code changes
Avoid per-flow graph clones during route computation
src/flows/flow.rsSpecialize fat-tree shortest-path routing
src/flows/route.rspetgraph::algo::astar.Tune MT executor worker handoff / park behavior
crates/nexosim/src/executor/mt_executor.rssrc/topos/topo.rs5us1us200usSupporting changes
Record the new sim-wall benchmark target and findings
autoresearch.mdautoresearch.ideas.mdautoresearch.jsonlautoresearch.shcargo run --release --bin days configs/benchmarks/flow/fattree_k32_tcp_f32_mt.tomlElapsed wall-clock time:log line so the metric excludes setup/routing time.Fix the path-from-config endpoint regression test after the borrowed-graph API change
tests/path_from_config_endpoints.rs&graphintocompute_path.Benchmark results
Original optimization target
Command:
Primary metric: total command wall-clock time (
wall_s, lower is better)Progression of kept wins on this branch:
d212294wall_s=10.899256440wall_s=10.04b60d7c0wall_s=9.8738e94c2wall_s=8.7304802e5wall_s=8.1163d432cwall_s=8.052c04bbfwall_s=8.01b109311wall_s=8.00Net improvement versus the warm baseline:
Follow-on benchmark target
Command:
Primary metric: simulator-reported elapsed wall time (
sim_wall_s, lower is better)Best logged result on this target:
sim_wall_s=9.52atc6986ffImportant finding:
The branch records several tried-and-discarded directions, including:
Simulation,Why this is worth merging
The core runtime wins are already isolated in the kept commits and materially reduce runtime on the original fat-tree benchmark without changing the workload itself.
The follow-on autoresearch work is also useful to keep in-tree because it:
Risks / caveats
Validation
Passing
cargo test --features test --test path_from_config_endpoints -- --show-outputBenchmarks used during this branch
./autoresearch.shonconfigs/exp_tcp_fattree.tomlduring the original campaign./autoresearch.shonconfigs/benchmarks/flow/fattree_k32_tcp_f32_mt.tomlafter switching the harness tosim_wall_sKnown issue during full-suite validation
cargo test --features test -- --show-outputtests/ring_allreduce_coverage.rs::mixed_tcp_broadcast_and_ring_collectives_emit_runtime_bytesFollow-up ideas