Butterfly Analysis: Adapting Dataflow Analysis to Dynamic Parallel Monitoring
- Todd C. Mowry, Carnegie Mellon University; Thomas Ball, Microsoft
Online program monitoring is an effective technique for detecting bugs and security attacks in running applications. Extending these tools to monitor parallel programs is challenging because the tools must account for inter-thread dependences and relaxed memory consistency models. Existing tools assume sequential consistency and often slow down the monitored program by orders of magnitude. In this talk, we present a novel approach that avoids these pitfalls by not relying on strong consistency models or detailed inter-thread dependence tracking. Instead, we only assume that events in the distant past on all threads have become visible; we make no assumptions on (and avoid the overheads of tracking) the relative ordering of more recent events on other threads. To overcome the potential state explosion of considering all the possible orderings among recent events, we adapt two techniques from static dataflow analysis, reaching definitions and reaching expressions, to this new domain of dynamic parallel monitoring. Significant modifications to these techniques are proposed to ensure the correctness and efficiency of our approach. We show how our adapted analysis can be used in two popular memory and security tools. We prove that our approach does not miss errors, and sacrifices precision only due to the lack of a relative ordering among recent events. Moreover, our simulation study on a collection of Splash-2 and Parsec 2.0 benchmarks running a memory-checking tool on a hardware-assisted logging platform demonstrates the potential benefits in trading off a very low false positive rate for (i) reduced overhead and (ii) the ability to run on relaxed consistency models.
Speaker Details
Todd C. Mowry is a professor in the Computer Science Department at Carnegie Mellon University. He received his PhD from Stanford University in 1994, and he was an assistant professor at the University of Toronto from 1994 through 1997. Professor Mowry’s research interests span the areas of computer architecture, compilers, operating systems, parallel processing, database performance, and modular robotics. He currently co-leads the Log-Based Architectures project and the Claytronics project. From 2004 through 2007, Professor Mowry served a rotation as the Director of Intel’s research lab in Pittsburgh. He is an Associate Editor of ACM Transactions on Computer Systems (TOCS).
-
-
Todd C. Mowry
Professor
Carnegie Mellon University
-
Thomas Ball
Partner Researcher
-
-
Watch Next
-
-
-
A Formal Analysis of Apple’s iMessage PQ3 Protocol
- Felix Linker
-