1 / 25

A New Reachability Algorithm for Symmetric Multi-processor Architecture

A New Reachability Algorithm for Symmetric Multi-processor Architecture. D. Sahoo, Stanford J. Jain, Fujitsu S. Iyer, UT-Austin D. Dill, Stanford. Formal Equivalence and  Assertion-based Verification Workshop 2005. Outline. Standard Reachability Analysis Multithreaded Reachability

Download Presentation

A New Reachability Algorithm for Symmetric Multi-processor Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A New Reachability Algorithm for Symmetric Multi-processor Architecture D. Sahoo, Stanford J. Jain, Fujitsu S. Iyer, UT-Austin D. Dill, Stanford Formal Equivalence and  Assertion-based Verification Workshop 2005

  2. Outline • Standard Reachability Analysis • Multithreaded Reachability • Multithreaded Reachability in SMP machines • Engineering Issues • Results • Conclusion and Future Work

  3. Related Work • Parallel Reachability Analysis: • Stern and Dill [CAV, 97] • Stornetta and Brewer [DAC, 96] • Yang, Hallaron [97] • Heyman, Geist, Grumberg, Schuster [CAV, 00] • Garavel, Mateescu, Smarandache [SPIN, 01] • Pixley, Havlicek [03]

  4. Reachability using BDD [Burch et al. : 91] Partitioned Transition Relation Initial State I … … R1 Image computation Trn Tri Tr1 R2 Least Fixed Point Ri

  5. Local Fixed Point 1 Local Fixed Point 2 Local Fixed Point 3 Local Fixed Point 4 Partitioned Reachability using POBDD POBDD - [Jain : 92] Reachability - [Narayan et al. : 97] I Initial States : I

  6. Local Fixed Point 3 Local Fixed Point 4 Communicate from 1 -> 2 Communicate from 1 -> 4 Communicate from 1 -> 3 Partitioned Reachability using POBDD POBDD - [Jain : 92] Reachability - [Narayan et al. : 97] I Initial States : I Local Fixed Point 1 Local Fixed Point 2

  7. Local Fixed Point 1 Local Fixed Point 2 Local Fixed Point 3 Local Fixed Point 4 Communicate from 2 -> 1 Communicate from 2 -> 3 Communicate from 2 -> 4 Partitioned Reachability using POBDD POBDD - [Jain : 92] Reachability - [Narayan et al. : 97] I Initial States : I Similarly repeat for other partitions

  8. Local Fixed Point 1 Local Fixed Point 2 Local Fixed Point 3 Local Fixed Point 4 Partitioned Reachability using POBDD POBDD - [Jain : 92] Reachability - [Narayan et al. : 97] I Improvements: [Iyer et al. : 03] [Sahoo et al. : 04]

  9. Motivation for Multi-threaded Approach • Scheduling Problem • Increasing availability of powerful SMP machines • Multi-threading is a way of achieving real parallelism in SMP machines

  10. Multi-threaded Reachability [DAC 05] Naïve parallelization Time • Advantage: • Parallel speedup • Catch a bug faster than the sequential version • Problems: • Not much parallelism

  11. Multi-threaded Reachability [DAC 05] Early Communication Time • Advantage: • Parallel speedup • Finishes the reachability analysis faster • Catches bug faster than the naive version • Problems: • Parallelism could be better

  12. Multi-threaded Reachability [DAC 05] Early Communication and Partial Communication Time • Advantage: • Parallel speedup • Finishes the reachability analysis faster • Catches bug faster than the previous versions

  13. Reachability in SMP Architecture Time • We find the bugs faster ! • Improved parallelism • Better parallel speedup

  14. Engineering Issues • Thread-safe BDD library • Deterministic behavior • Smart thread scheduling

  15. Extensive memory based optimizations Pointer comparisons Hashing based on memory address Solutions: Deterministic Hashing Deterministic comparisons Sources of Non-determinism Thread 1 Thread 2 p = malloc (…) p = malloc (…) key = hash(p) if (p > p1) …

  16. Thread synchronization Solutions Synchronization based on deterministic count Number of ITE operations Number of Sift operations Sources of Non-determinism Thread 1 Thread 2 Image #n Image #n+1

  17. Smart Thread Scheduling Thread • Each processor has its own cache • Thread is assigned to a processor • The cache fills up with the thread’s memory usage. • The same thread assigned to a different processor after sometime • A large number of unnecessary cache miss when the thread use its previously used memory locations • Solutions: • Bind thread to a processor • Leads to suboptimal throughput • If the number of threads exceeds the number of processors CPU2 CPU1 Cache2 Cache1 0x07ffd0 Lookup 0x07ffd0 Cachemiss

  18. BDD Performance : CUDD Vs New

  19. BDD Performance : CUDD Vs New

  20. Performance : Non-deterministic Vs Deterministic

  21. Performance: Cache or Parallelism

  22. Results on Industrial Circuits

  23. Results on public benchmarks

  24. Results : Gantt charts Real execution traces from our multi-threaded reachability program

  25. Conclusion and Future Work • Parallelize the Reachability • Multi-threaded Reachability • Better results • Deterministic behavior • Future Work • Improve the parallelism further • Study cache behavior

More Related