1 / 17

Multi-Core LTSmin: Marrying Modularity and Scalability

Multi-Core LTSmin: Marrying Modularity and Scalability. Alfons Laarman Joint work with : Michael Weber Jaco Van de Pol 11/4/201. Nfm 2011. LTSmin Design Multi -Core Backend Concurrent Tree Compression Incremental Algorithms Experiments Future Work. Overview.

mead
Télécharger la présentation

Multi-Core LTSmin: Marrying Modularity and Scalability

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. Multi-Core LTSmin:Marrying Modularity and Scalability Alfons Laarman Joint workwith: Michael Weber Jaco Van de Pol 11/4/201 Nfm2011

  2. LTSmin Design Multi-Core Backend Concurrent Tree Compression Incremental Algorithms Experiments Future Work Overview Shared Hashtables in Parallel Model Checking

  3. LTSmin: The modular part LTSMin Internal (symbolic) State based Process algebraic Language Frontend: DVE PROMELA via NIPS μCRL1 muCRL2 … ETF PINS Layer: Caching Regrouping POR Algorithms (backend) Multi-core Distributed Sequential Symbolic Multi-Core LTSmin: Marrying Modularity and Scalability

  4. The scalable multi-core part Previous work Worker 1 Worker 2 PINS Synchronous Random Polling Lockless hash table request Worker 4 Worker 3 Multi-Core LTSmin: Marrying Modularity and Scalability

  5. Memory becomes the problem (again) Store 10^9 state vectors of length up to 10^3 bytes With 16 cores the throughput can become 1GB/sec of new state vectors States are very similar Solution: Tree compression without losing scalability Exploit locality with incremental algorithms Multi-Core LTSmin: Marrying Modularity and Scalability

  6. Concurrent Tree Compression Ingredients Alfons Laarman, Jaco van de Pol and Michael Weber – Parallel Recursive State Compression for Free (submitted) Multi-Core LTSmin: Marrying Modularity and Scalability

  7. Incremental tree insertion Ingredients Incremental insertion exploits locality (log2(N) accesses) Multi-Core LTSmin: Marrying Modularity and Scalability

  8. Memory usage Experiments Multi-Core LTSmin: Marrying Modularity and Scalability

  9. Memory usage Experiments Multi-Core LTSmin: Marrying Modularity and Scalability

  10. Aggregate Performance Experiments Multi-Core LTSmin: Marrying Modularity and Scalability

  11. SUMMARY • Scalable memory-efficient reachability (DFS/BFS) • On-the-fly model checking of safety properties Shared Hashtables in Parallel Model Checking

  12. Future work • POR PINS layer (benchmarked, published) • Multi-Core NDFS • Case studies • Download LTSmin (open source): • http://fmt.cs.utwente.nl/tools/ltsmin/ Shared Hashtables in Parallel Model Checking

  13. Incremental hashing based on Zobrist Hashing [1] An Incremental Algorithm ♘g1-f3 (Hx⊕ Z♘,g,1) ⊕Z♘,f,3 = Hx Hy [1] Albert Lindsey Zobrist, A New Hashing Method with Application for Game Playing Multi-Core LTSmin: Marrying Modularity and Scalability

  14. Command line arguments and their effect LTSmin Shared Hashtables in Parallel Model Checking

  15. Incremental hashing (continued) Ingredients Uses dependency matrix Z is now limited by L Multi-Core LTSmin: Marrying Modularity and Scalability

  16. LTSmin: The modular part LTSMin • Traditionally in model checking we have states and a next-state function • A state is an array of slots: <s1,….,sN> ∈ S • The next-state() function provides the transition relation: S →S • In LTSmin, we expose static information of the specification. • Partitioned Next-State Interface (PINS): S →KS (K transition groups) • The Dependency Matrix D is a K × N matrix of Booleans relating slots and groups: • DRi,j indicates whether slot j is read by the transitions of group i. • DWi,j indicates whether slot j is written to by the transitions of group i. • Di,j = DRi,j∨ DWi,j Multi-Core LTSmin: Marrying Modularity and Scalability

  17. LTSmin: The modular part LTSMin PINS interface μCRL1 PROMELA Sequential Symbolic Multi-core muCRL2 DVE Distributed ETF Multi-Core LTSmin: Marrying Modularity and Scalability

More Related