Heuristics for Profile Heuristics for Profile-
- driven Method
driven Method-
- level Speculative Parallelization
Heuristics for Profile- -driven Method driven Method- - - - PowerPoint PPT Presentation
Heuristics for Profile- -driven Method driven Method- - Heuristics for Profile level Speculative Parallelization level Speculative Parallelization John Whaley and Christos Kozyrakis Stanford University June 15, 2005 Speculative
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 1
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 2
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 3
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 4
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 5
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 6
fork p!=q No violation
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 7
fork p=q Violation!
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 8
fork
p!=q No violation
p=q Violation!
(aborted)
fork
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 9
fork
main() { foo() { work_A; } work_B; bar() { work_C; } work_D; }
fork
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 10
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 11
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 12
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 13
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 14
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 15
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 16
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 17
fork
idle
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 18
fork
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 19
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 20
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 21
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 22
fork
idle
fork
main() { foo() { work_A; bar() { work_B; } work_C; } work_D; }
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 23
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 24
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 25
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 26
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 27
– Multiple parameters for each heuristic
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 28
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 29
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 30
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 31
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 32
1e5 1e6 1e7 1e9 1e12 1e3 1e4 1e5 1e6 1e7 1.00 1.10 1.20 1.30 1.40 1.50 1.60 Speedup MAX MIN
Runtime (SI-RT)
1e5 1e6 1e7 1e9 1e12 1e3 1e5 1e7 1000 2000 3000 4000 5000 6000 Number of violations MAX MIN
Runtime (SI-RT)
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 33
1.00 1.10 1.20 1.30 1.40 1.50 1e1 1e2 1e3 1e4 1e5 Threshold Speedup Void only Constant Perfect
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 34
1000 2000 3000 4000 5000 1e1 1e2 1e3 1e4 1e5 Threshold Number of violations Void only Constant Perfect
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 35
1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.001 1.01 1.1 1.2 1.4 1.6 Threshold Speedup Void only Constant Perfect
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 36
50 100 150 200 250 300 350 1.001 1.01 1.1 1.2 1.4 1.6 Threshold Number of Violations Void only Constant Perfect
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 37
0.1 0.3 0.5 0.7 0.9 1e2 1e5 1e7 1.00 1.10 1.20 1.30 1.40 1.50 1.60 Speedup RATIO THRES
Most Cycles Saved (SP-CS)
0.1 0.3 0.5 0.7 0.9 1e2 1e5 1e7 50 100 150 200 250 300 350 Number of violations RATIO THRES
Most Cycles Saved (SP-CS)
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 38
1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 1.001 1.01 1.1 1.2 1.4 1.6 Threshold Speedup Void only Constant Perfect
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 39
100 200 300 400 500 1.001 1.01 1.1 1.2 1.4 1.6 Threshold Number of violations Void only Constant Perfect
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 40
0.1 0.3 0.5 0.7 0.9 1e2 1e5 1e7 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 Speedup RATIO THRES
Most Cycles Saved with Parent Info (MP-CS)
0.1 0.3 0.5 0.7 0.9 1e2 1e5 1e7 50 100 150 200 250 300 350 400 Number of violations RATIO THRES
Most Cycles Saved with Parent Info (MP-CS)
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 41
0.1 0.3 0.5 0.7 0.9 1e2 1e5 1e7 1.00 1.05 1.10 1.15 1.20 1.25 1.30 1.35 1.40 Speedup RATIO THRES
Most Cycles Saved with No Nesting (MP-CSNN)
0.1 0.3 0.5 0.7 0.9 1e2 1e5 1e7 50 100 150 200 250 300 350 400 Number of violations RATIO THRES
Most Cycles Saved with No Nesting (MP-CSNN)
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 42
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 43
1.0 1.2 1.4 1.6 1.8 2.0 barnes compress jack javac jess mpeg raytrace water Average Speedup SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN Oracle
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 44
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN barnes compress jack javac jess mpeg raytrace water Normalized number of threads Successful Preempted Killed
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 45
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN SI-RT SI-SC SP-SU SP-CS MP-SU MP-CS MP-CSNN barnes compress jack javac jess mpeg raytrace water Normalized Execution Time Useful Idle Wasted
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 46
1.38 1.27 13.02 0.30 2.57 0.39 6.48 12.02 MP- CSNN 1.38 1.27 1.64 0.30 0.30 0.39 6.48 12.02 MP-CS 1.38 1.27 1.27 0.30 0.30 0.39 6.48 12.01 MP-SU 0.22 1.64 15.29 0.30 2.57 0.39 6.48 0.31 SP-CS 0.55 1.64 13.02 0.30 1.08 0.39 6.48 8.11 SP-SU 1.45 1.64 13.02 0.15 3.51 0.19 6.47 12.02 SI-SC 0.20 1.64 0.76 0.26 2.05 0.39 0.18 0.31 SI-RT
water rtrace mpeg jess javac jack comp barnes
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 47
June 15, 2005 Heuristics for Profile-driven Method- level Speculative Parallelization 48