Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Compiler Support for Efficient Software-only Checkpointing Chuck (Chengyan) Zhao Dept. of Computer Science University of Toronto Ph.D. Thesis Exam Sept.

Similar presentations


Presentation on theme: "1 Compiler Support for Efficient Software-only Checkpointing Chuck (Chengyan) Zhao Dept. of Computer Science University of Toronto Ph.D. Thesis Exam Sept."— Presentation transcript:

1 1 Compiler Support for Efficient Software-only Checkpointing Chuck (Chengyan) Zhao Dept. of Computer Science University of Toronto Ph.D. Thesis Exam Sept. 07, 2012

2 Execution Going Backward? A time-travel machine going back to the past arbitrary distance unlimited number of attempts no special hardware support efficient … Benefits debugging software backtracking … 2

3 3 Checkpointing (CKPT) Can Help Checkpointing A process to take program snapshots Recover execution when error happens Enhance reliability and robustness Existing Checkpointing Approaches Hardware-based fine-grain solutions Software-only coarse-grain solutions Our Proposed Solution: Fine-grain Software-only CKPT

4 4 Fine-grain Checkpointing … a = 5; b = 7; … a: b: checkpoint buffer failure recovery (&a, 1) (&b, 2) main memory 2 1 5 7 Checkpoint region / / / /

5 5 Our Proposed Checkpointing Approach An Efficient Software Checkpointing Framework Software only no need for hardware support Cover arbitrarily large code region dynamically allocate ckpt buffer Leverage compiler optimizations aggressive overhead reduction Example Applications Program debugging Automatic software backtracking

6 Annotated source Enable Checkpointing Optimize Checkpointing LLVM frontend Callsite Analysis Inter-procedural Transformations Intra-procedural Transformations Special Cases Handling Source code C/C++ Compiler IR Backend Process Compiler Checkpointing (CKPT) Framework x86 x64 … POWER C/C++ 2. Pre Optimize 3. Redundancy Eliminations 4. Hoisting 6. Non Rollback Exposed Store Elimination 1. CKPT Inlining 7. Heap Optimize 8. Array Optimize 9. Post Optimize 5. Aggregation 6

7 Enabling Checkpointing 7

8 8 start_ckpt(); … backup(&a, sizeof(a)); a = …; handleMemcpy(…); memcpy(d, s, len); foo_ckpt(); foo(); … stop_ckpt(cond); foo(…){ /* body of foo() */} foo_ckpt(…){ /* body of foo_ckpt() */ }… Transformations to Enable Checkpointing 3 Steps: 1. Callsite analysis 2. Intra-procedural transformation 3. Inter-procedural transformation

9 Optimizations 9

10 Optimize Checkpointing Checkpointing Optimization Framework 2. Pre Optimization 3. Redundancy Eliminations (3 REs) 4. Hoisting 6. Non Rollback Exposed Store Elimination 1. CKPT Inlining 7. DynMem (Heap) Optimization 8. Array Optimization 9. Post Optimization 5. Aggregation 10

11 start_ckpt(); … if (C){ backup(&a, sizeof(a)); a = …; } … backup(&a, sizeof(a)); a = …; … backup(&a, sizeof(a)); a = …; … … stop_ckpt(cond); Redundancy Elimination Optimization Algorithm establish dominating relationship stop_ckpt() marker promote leading backup call re-establish dominating relationship among backup calls eliminate all non-leading backup call(s) 11 RE1: remove all non-leading backup call(s) dom

12 int a, b; … start_ckpt(); … b = … a op …; … backup(&a, sizeof(a)); a = …; … stop_ckpt(cond); 12 Rollback Exposed Store must backup 'a' because the prior load of 'a' must access the "old" value on rollback – i.e., 'a' is "rollback exposed" Rollback Exposed Store: a store to a location with a possible previous load of that location CAN’T optimize this case!

13 int a, b; … start_ckpt(); … backup(&a, sizeof(a)); a = …; … stop_ckpt(cond); Algorithm: ensure that no use of the address (&a) on any path the backup address (&a) isn’t aliased to anything empty points-to set 13 NRESE is a new, checkpoint-specific optimization Non-Rollback Exposed Store Elimination (NRESE) no prior use of 'a', hence it is non- rollback-exposed we can eliminate the backup required for any rollback-exposed store

14 Applications 14

15 15 Q: place where the bug manifests (a user or programmer notices the bug at this point) T: safe point, earlier than P, the program can reach through checkpoint recovery CKPT Region P: root cause of a bug App1: CKPT enabled debugging 15 Key benefits execution rewinding support for large region unlimited # of retries avoids entire program re-execution

16 Simulated Annealing Placement in VPR Algorithm: 1) Start with random placement of blocks 2) Randomly pick a pair of blocks to swap 3) Keep new placement if an improvement … A B C D ? B A C D ? blocks nets Key benefits automate support for backtracking backup actions abort commit cover arbitrarily complex algorithm cleaner code, simplify programming programmer focus on algorithm

17 Evaluation 17

18 Platform and Benchmarks Evaluation Platform Core i7 920, 4GB DDR3, 200GB SATA Debian6-i386, gcc/g+-4.4.5 LLVM-2.9 Benchmarks BugBench: 1.2.0 5 programs with buffer-overflow bugs 3 CKPT regions per program: Small. Medium. Large VPR: 5.0.2 FPGA CAD tool, 1 CKPT region CKPT Comparison libCKPT [USENIX95]: U. Tennessee ICCSTM [PLDI 06]: STM based on Intel ICC unfair comparison, but closest alternative 18

19 19 Compare with Coarse-gain Scheme: libCKPT HUGE gain over coarse-grain libCKPT 1

20 20 Compare with Fine-gain Scheme: ICCSTM better than fine-grain ICCSTM

21 212121 % % % % % RE1 Optimization: buffer size reduction RE1 is the most-effective optimization 21

22 22 % % % % % % % % % Post RE1 Optimization: buffer size reduction Other optimizations also contribute 22

23 Conclusion CKPT Optimization Framework compiler-driven automatic software-only compiler analysis and optimizations 100-1000X less overhead: over coarse-grain CKPT 4-50X improvement: over fine-grain ICCSTM CKPT-supported Apps debugger: execution rewind in time up to: 98% of CKPT buffer size reduction up to: 95% of backup call reduction VPR: automatic software backtracking only 15% CKPT overhead vs. manual checkpointing 23

24 24 Questions and Answers ?

25 Algorithm: Redundancy Elimination 1 1. Build dominating relationship (DOM) among backup calls 2. Identify leading backup call 3. Promote suitable leading backup call 4. Remove non-leading backup call(s) 25

26 Algorithm: NRESE Backup address is NOT aliased to anything points-to set is empty AND On any path from begin of CKPT to the respective write, there is no use of the backup address the value can be independently re-generated without the need of it self 26

27 1D array vs. Hash Tables Buffer Schemes 27

28 28 10X 100X 1KX 10KX 100KX Compare with Coarse-gain Scheme: libCKPT HUGE gain over coarse-grain libCKPT

29 Annotated source Enable Checkpointing Optimize Checkpointing Source code C/C++ LLVM IR Backend Process Compiler Checkpointing (CKPT) Framework x86 x64 … Power C/C++ 2. Pre Optimize 3. Redundancy Eliminations 4. Hoisting 6. Non Rollback Exposed Store Elimination 1. CKPT Inlining 7. Heap Optimize 8. Array Optimize 9. Post Optimize 5. Aggregation 29

30 CKPT Enabled Debugging Key benefits execution rewinding arbitrarily large region unlimited # of retries no restart 30

31 31 Compare with Fine-gain Scheme: ICCSTM better than best-known fine-grain solution

32 start_ckpt(); … backup(&a, sizeof(a)); a = …; … backup(&a, sizeof(a)); a = …; … if (C){ backup(&a, sizeof(a)); a = …; … } … stop_ckpt(c); Redundancy Elimination Optimization 1 Algorithm establish dominating relationship among backup calls promote leading backup call eliminate all non- leading backup call(s) 32 D RE1: keep only dominating backup call

33 33 initial guess obtain a new result (manual CKPT) check result … commit and continue good abort and try next bad CKPT Support for Automatic Backtracking (VPR) CKPT automates the process, regardless of backtracking complexity

34 34 

35 35 Key benefits automate support for backtracking backup actions abort commit cover arbitrarily complex algorithm cleaner code, simplify programming programmer focus on algorithm

36 36 App2: CKPT enabled backtracking Evaluate (manual CKPT) Initial Guess bad Reset Data good Commit Data Finish stop condition reached Key benefits automate support for backtracking backup actions abort commit cover arbitrarily complex algorithm cleaner code, simplify programming programmer focus on algorithm

37 37 Key benefits automate CKPT process backup actions abort commit cover arbitrarily complex algorithm simplify programming programmer focus on algorithm

38 2. Pre Optimize 3. Redundancy Eliminations 4. Hoisting 6. Non Rollback Exposed Store Elimination 1. CKPT Inlining 7. Heap Optimize 8. Array Optimize 9. Post Optimize 5. Aggregation 38

39 How Can A Compiler Help Checkpointing? Enable CKPT compiler transformations Optimize CKPT do standard optimizations apply? support CKPT-specific optimizations? CKPT Uses debugging backtracking 39

40 40 Optimization: buffer size reduction up to 98% of CKPT buffer size reduction % % % % %

41 41

42 42 CKPT Region 42 Q: keep swap if improvement, discard otherwise T: pick a pair of blocks to swap Compute cost of the swapped version

43 Agenda Enable Checkpointing Optimize Checkpointing Checkpointing Enabled Applications Test and Evaluation Summary 43

44 The Lengthy Development-Cycle Problem 44 Develop Run Debug long cycle time …

45 45 Q: keep swap if improvement, discard otherwise T: pick a pair of blocks to swap CKPT Region App2: CKPT enabled automatic backtracking (VPR) 45 Proceed with VPR’s random/simulated- annealing based algorithm Key benefits automate support for backtracking backup actions abort commit cover arbitrarily complex algorithm cleaner code, simplify programming programmer focus on algorithm

46 46


Download ppt "1 Compiler Support for Efficient Software-only Checkpointing Chuck (Chengyan) Zhao Dept. of Computer Science University of Toronto Ph.D. Thesis Exam Sept."

Similar presentations


Ads by Google