Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TMPA-2017: A Survey of High-Performance Computing for Software Verification

TMPA-2017: A Survey of High-Performance Computing for Software Verification

TMPA-2017: Tools and Methods of Program Analysis
3-4 March, 2017, Hotel Holiday Inn Moscow Vinogradovo, Moscow

A Survey of High-Performance Computing for Software Verification
Ilja Zakharov, Institute for System Programming

For video follow the link: https://youtu.be/ray7HXnOYss
Would like to know more?
Visit our website:
www.tmpaconf.org
www.exactprosystems.com/events/tmpa

Follow us:
https://www.linkedin.com/company/exactpro-systems-llc?trk=biz-companies-cym
https://twitter.com/exactpro

Exactpro

March 23, 2017
Tweet

More Decks by Exactpro

Other Decks in Technology

Transcript

  1. Institute for System Programming of the Russian Academy of Sciences

    A Survey of High-Performance Computing for Software Verification 2017, Moscow, Russia Ilja Zakharov [email protected]
  2. 3 Linux Drivers Verification catc.ko cdrom.ko usbcore.ko raid1.ko etx2.ko ext3.ko

    rtc-lib.ko The Linux Kernel catc.ko catc.ko env env catc.ko env catc.ko env catc.ko linux:mutex generic:memory linux:clock Extract a module source code Generate an environment model Add a safety property specification
  3. 5 Static Verification of C Programs void main() { int

    x = nondet(); int y = nondet(); int z = nondet(); L1: if (x > y) { L2: z = y - x; } else { L3: z = x - y; } L4: if (z < 0) ERR: goto ERR; L5: } Enter main() x = nondet(); y = nondet(); z = nondet(); assume(x > y) z = x - y; assume(z < 0) ERR;
  4. 7 Verification Tasks 4500 Modules 30 Safety properties 2 Verification

    tool configurations 50 Sec of CPU time per verification task * * * = ?
  5. 11 Distributed Verification • Verification of a single task using

    several nodes • Distributing tasks into several nodes
  6. 12 Distributed Verification of a Single Task • Nodes explore

    parts of the state space • Data transfer has high latency • Modern work stations are used inefficiently Murφ SPIN ARMC DiVinE
  7. 13 Distributed Verification of a Single Task • Nodes explore

    parts of the state space • Data transfer has high latency • Modern work stations are used inefficiently Speedup ThreadNums 1
  8. 14 Distributed Verification of Several Tasks • VerifierCloud for SV-COMP

    annual competition Program Verdict 4 days 787 463 verification tasks, CPU wall time of 3a 27d 15h 49min 35s
  9. 15 Platform as a Service • Platforms create application instances

    depending on current workload • An application must use the platform API • Platforms imply hard restrictions on task pending time and task solution time
  10. 16 CPAchecker in GAE • Faster application startup • Pure

    Java SMT interpolating Solver • Specific API to access file system • Restricted time for task solution and pending
  11. 17 Infrastructure as a Service • EC2, OpenStack, … •

    Clouds provide virtual machines • Users can adjust VM characteristics
  12. 19 Multi-Core Verification • Parallel state space exploration • Lockless

    hash tables to store state space • Cache coherence may introduce significant latency DiVinE, SPIN, LTSmin BOLT (Map-Reduce)
  13. 20 Multi-Core Verification • Parallel state space exploration • Lockless

    hash tables to store state space • Cache coherence may introduce significant latency DiVinE, SPIN, LTSmin BOLT (Map-Reduce) Speedup ThreadNums 1
  14. 21 GPU Computing • Hundreds cores organized as SMX •

    GPU Memory hierarchy • Longer clock cycle • Separated code for GPU and CPU
  15. 22 GPU Verification • Linear arithmetic • Sparse matrixes •

    Less system calls • CPU and GPU combination GPU-PRISM CADP DiVinE SPIN LTSmin 100 times faster than CPU using Kepler Architecture
  16. 23 Few High Performance Static Verifiers • Proof of concepts

    available • No best solution • Difficulty of tools comparison from different classes
  17. 24 Linux Driver Verification • Distributed task solution • Tasks

    distribution • IaaS • PaaS • Multi-core verification • GPU verification
  18. 25 Ongoing Work VM VM VM VM VM Consul, DockerSwarm

    OpenStack CPAchecker BenchExec CPAchecker BenchExec CPAchecker BenchExec Master Scheduler Web-Interface VM TaskGenerator RunExec Client Client
  19. 28

  20. 29

  21. 30