Refactoring for Reentrancy
Speaker: Manu Sridharan, IBM
Location: Warren Weaver Hall 1302
Date: October 16, 2009, 11:30 a.m.
Host: Clark Barrett
With the multicore era upon us, there is a critical need for tools to help modify legacy code to run efficiently on multicore machines. One key hindrance to such a migration is a lack of reentrancy in legacy single-threaded applications, which makes exploiting even embarrassing parallelism difficult. We have developed a mostly-automated refactoring that makes such programs reentrant by replacing global state with thread-local state and performing each execution in a fresh thread. Our approach has the key advantage of yielding a program that is obviously safe for parallel execution; the program can then be optimized selectively for better performance. We implemented this refactoring in Reentrancer, a practical Eclipse-based tool, and showed that it is able to eliminate reentrancy problems and enable multicore speedups. In this talk, I will present Reentrancer in detail and discuss further challenges in making legacy code scale on multicores.
Manu Sridharan has been a research staff member at IBM T.J. Watson Research Center since 2008. He received his PhD from the University of California, Berkeley in 2007, and his dissertation work focused on refinement-based program analysis tools. He has done research on a variety of topics in static analysis, dynamic analysis, and software engineering. His current projects include work on symbolic analysis, security, and refactoring for multicores.
Refreshments will be offered starting 15 minutes prior to the scheduled start of the talk.