Understanding the Lifetime of Data Sharing in Multithreaded Applications

by
Angda Chen

Abstract:

Multicore computers are now the standard in mainstream computing. However, the difficulty in programming multithreaded applications means parallel programs often behave in unpredictable ways, making them hard to understand and debug. In order to tackle this issue, we used Pin, a binary instrumentation engine, and wrote a tool that instruments other programs to gather data on variable sharing between threads from a value perspective. Specifically, the tool tracks the lifetime of shared values by tracking the number of remote reads after a write. Our tool can also look at the actual functions in the instrumented program where the sharing occurs. In order to aid debugging instrumented applications, we then made a tool to visualize data sharing using the Prefuse visualization toolkit.

Advised by Luis Ceze

CSE 203
Wednesday
June 4, 2008
3:30 - 4:20 pm