Presentation is loading. Please wait.

Presentation is loading. Please wait.

All-Pairs Shortest Paths

Similar presentations


Presentation on theme: "All-Pairs Shortest Paths"— Presentation transcript:

1 All-Pairs Shortest Paths
Directed graph with “costs” on edges Find least-cost paths between all reachable vertex pairs Several classical algorithms with Work ~ matrix multiplication Span ~ log2 n Case study of implementation on multicore architecture: graphics processing unit (GPU)

2 GPU characteristics But: Powerful: two Nvidia 8800s > 1 TFLOPS
Inexpensive: $500 each But: Difficult programming model: One instruction stream drives 8 arithmetic units Performance is counterintuitive and fragile: Memory access pattern has subtle effects on cost Extremely easy to underutilize the device: Doing it wrong easily costs 100x in time

3 Recursive All-Pairs Shortest Paths
B D C Based on R-Kleene algorithm Well suited for GPU architecture: Fast matrix-multiply kernel In-place computation => low memory bandwidth Few, large MatMul calls => low GPU dispatch overhead Recursion stack on host CPU, not on multicore GPU Careful tuning of GPU code A B C D + is “min”, × is “add” A = A*; % recursive call B = AB; C = CA; D = D + CB; D = D*; % recursive call B = BD; C = DC; A = A + BC;

4 Execution of Recursive APSP

5 APSP: Experiments and observations
128-core Nvidia 8800 Speedup relative to. . . 1-core CPU: 120x – 480x 16-core CPU: 17x – 45x Iterative, 128-core GPU: 40x – 680x MSSSP, 128-core GPU: ~3x Time vs. Matrix Dimension Conclusions: High performance is achievable but not simple Carefully chosen and optimized primitives will be key


Download ppt "All-Pairs Shortest Paths"

Similar presentations


Ads by Google