Tuesday March 3, 2009
Hamerschlag Hall D-210
Carnegie Mellon University
As multicore processors become more prevalent, application performance increasingly depends upon parallel execution through multithreading. Software lifeguards, which are online tools for monitoring software correctness, are an invaluable part of the application writing process. However, most existing lifeguards focus on single-threaded applications and can be difficult to parallelize, since they must be aware of the relative orderings of memory accesses and other events issued from concurrent threads.
In this talk I will present our solution to the multithreaded application monitoring problem. Our approach is based on the Log-based Architectures Framework and leverages cache coherence to reason about the relative ordering of memory accesses issued from different threads. Furthermore, it extends the framework to comprehend “logical races” – events involving at least two threads where the relative order may be important, but where not all events are memory accesses.
Our approach enables software lifeguards to (i) efficiently reason about the state of the application, and (ii) avoid costly synchronization among lifeguard threads that share shadow state. Simulation results for a parallel dynamic information flow lifeguard on a 16-core CMP show at least a 5X speedup over existing techniques.
Evangelos Vlachos is a 3rd year PhD student at Carnegie Mellon (ECE), advised by Todd Mowry and Babak Falsafi. His research interests lie in the area of computer architecture and specifically in hardware support for increasing debugging ability in modern systems.