60 likes | 155 Views
Utah Verifier Group Research Overview. Robert Palmer. b. / / pc=1 /a / pc’=2 / / pc=1 /b / pc’=3 / / pc=2 /b / pc’=1 / / pc=3 /a / pc’=1. 2. a. 1. b. 3. a. Modeling MPI. Find Deadlocks Guarantee Assertions Optimize Correctly.
E N D
Utah Verifier GroupResearch Overview Robert Palmer
b \/ /\ pc=1 /\a /\ pc’=2 \/ /\ pc=1 /\b /\ pc’=3 \/ /\ pc=2 /\b /\ pc’=1 \/ /\ pc=3 /\a /\ pc’=1 2 a 1 b 3 a Modeling MPI • Find Deadlocks • Guarantee Assertions • Optimize Correctly (Robert Palmer)
Verification of MPI one-sided communication (Salman Pervez) • MPI one-sided communication • Implementation of shared memory in a message passing paradigm. • A process can make its memory space available for use by other processes. • Other processes can read/write from this memory space without explicit communication with the owner • Case Study: Byte-range-locks using MPI one-sided • One-sided uses a relaxed memory model which makes locking harder • Model checking can be used to detect deadlocks/livelocks in locking algorithms • Traditional testing not enough to uncover serious bugs
Control Flow Model Extraction from Visual Studio (Geof Sawaya) • Uses VS Extensibility classes to extract code elements • Each function is analyzed with a parse engine (Gold Parser) and fed a grammar, producing a parse tree • The parse tree is used to generate a control flow graph
Design a prototype protocol Build and verify each level of the hierarchy protocol separately Combine all level protocols into the full protocol afterwards Verify the hierarchical protocol Use various abstractions Use assume-guarantee reasoning Verifying Hierarchical Cache Coherence Protocols (Xiaofang Chen)
Under-approximation Model Checking for Concurrent Programs (Yu Yang) • Testing Concurrent C Programs is still hard • Difficult to instrument the binary code • Don’t have infrastructure like JavaPathfinder whichprovides forward/roll-back for program execution • Our Method • Use external scheduler to control the program execution • Restart from beginning and choose a new interleaving trace Instrumented multithreaded program request /reply request /reply Instrumented multithreaded program scheduler request /reply Instrumented multithreaded program