A Technique for Parallel Reachability Analysis of Java Programs - PowerPoint PPT Presentation

About This Presentation
Title:

A Technique for Parallel Reachability Analysis of Java Programs

Description:

Data access errors (violation ... Construct state-transition graph for each thread Ti (all other threads at their ... Construct RG as cross-product of all Ris. ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 17
Provided by: raghuraman5
Category:

less

Transcript and Presenter's Notes

Title: A Technique for Parallel Reachability Analysis of Java Programs


1
A Technique for Parallel Reachability Analysis of
Java Programs
  • Raghuraman R.
  • Sridhar Iyer
  • G. Sajith

2
Outline of Talk
  • Errors in Concurrent Programs
  • Reachability Analysis
  • A Technique for Parallel RA
  • Experimental Results
  • Conclusions

3
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
Reachability Analysis
  • Systematic enumeration of all possible
  • global states of program execution
  • Technique
  • Program listing -gt
  • Generate abstract representation -gt
  • Generate reachability graph -gt
  • Analyse for errors -gt
  • Error listing

5
RA (contd.)
6
Inefficiencies in RA
  • - Exponential complexity (NT)
  • - Limited capacity to deal with dynamic
    references
  • - Might report spurious errors
  • State Explosion tackled by Apportioning
    Technique Iyer 98
  • - But time complexity remains

7
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
System Model
  • All threads created at start of program execution
    (each thread at ltentrygt state)
  • All threads have the same priority
  • Program terminates when all threads reach their
    ltreturngt state
  • Synchronization between threads is by using locks

9
Algorithm
10
An Example
Consider an example application with 2 threads
of execution.
Thread 1
Thread 2
11
Example (contd.)
  • Construct state-transition graph for each thread
    Ti (all other threads at their entry points) in
    parallel

12
Example (contd.)
  • Construct RG as cross-product of all Ris.
  • - RG might contain tuples corresponding to
    multiple threads holding the same lock (RG an
    arbitrary cross-product) eg. Tuple 2

13
Example (contd.)
  • Detect invalid tuples and discard them
  • Remaining tuples correspond to traditional RG

14
Experimental Results
15
Experimental Results (Contd.)
16
Conclusions
  • The technique is safe for all programs in the
    chosen model
  • Significant reduction in time
  • from O(NT)2 to O( (T.K.NT) / P)
  • Where Tno. of threads, Nno of states in each
    thread, K no. of locks and Pno. of processors.
Write a Comment
User Comments (0)
About PowerShow.com