Download presentation
Presentation is loading. Please wait.
Published byEmely Brass Modified over 10 years ago
1
A Technique for Parallel Reachability Analysis of Java Programs Raghuraman R. Sridhar Iyer G. Sajith
2
CIT 2000 Outline of Talk Errors in Concurrent Programs Reachability Analysis A Technique for Parallel RA Experimental Results Conclusions
3
CIT 2000 Errors in Concurrent Programs Non-determinism and synchronization involved Data access errors (violation of mutex) Synchronization errors (deadlocks- waiting for shared variables, mesgs) Temporal errors (calls to terminated pgm components)
4
CIT 2000 Reachability Analysis Systematic enumeration of all possible global states of program execution Technique: Program listing-> Generate abstract representation -> Generate reachability graph-> Analyse for errors-> Error listing
5
CIT 2000 RA (contd.)
6
CIT 2000 Inefficiencies in RA - Exponential complexity (N T ) - Limited capacity to deal with dynamic references - Might report spurious errors + State Explosion tackled by Apportioning Technique [Iyer 98] - But time complexity remains
7
CIT 2000 The Parallel RA Technique Mitigates the time complexity Generate state-transition graphs for each thread Generate cross-product of all state- transition graphs Discard invalid tuples from the cross- product
8
CIT 2000 System Model All threads created at start of program execution (each thread at state) All threads have the same priority Program terminates when all threads reach their state Synchronization between threads is by using locks
9
CIT 2000 Algorithm
10
CIT 2000 An Example Thread 1Thread 2 Consider an example application with 2 threads of execution.
11
CIT 2000 Example (contd.) Construct state-transition graph for each thread T i (all other threads at their entry points) in parallel
12
CIT 2000 Example (contd.) Construct R G as cross-product of all R i s. - R G might contain tuples corresponding to multiple threads holding the same lock (R G an arbitrary cross-product): eg. Tuple 2
13
CIT 2000 Example (contd.) Detect invalid tuples and discard them Remaining tuples correspond to traditional R G
14
CIT 2000 Experimental Results
15
CIT 2000 Experimental Results (Contd.)
16
CIT 2000 Conclusions The technique is safe for all programs in the chosen model Significant reduction in time from to P Where T=no. of threads, N=no of states in each thread, K= no. of locks and P=no. of processors.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.