Deferred Methods: Accelerating Dynamic Program Analysis on Multicores

TitleDeferred Methods: Accelerating Dynamic Program Analysis on Multicores
Publication TypeConference Paper
Year of Publication2012
AuthorsAnsaloni, D., W. Binder, A. Heydarnoori, and L. Y. Chen
Conference NameInternational Symposium on Code Generation and Optimization (CGO)
Date Published04/2012
Conference LocationSan Jose, USA

Parallelization is attractive for speeding up dynamic program analysis on multicores. However, inter-thread communication overhead may outweigh any benefit from parallel execution. We propose deferred methods, a high-level Java framework to accelerate dynamic analysis on multicores. To minimize inter-thread communication overhead, invocations to analysis methods are automatically aggregated in thread-local buffers that are processed when full. In contrast to other approaches, our framework supports custom buffer processing strategies, eases pre-processing of buffers to reduce contention on shared data structures, and offers a synchronization mechanism to wait for the completion of previously invoked deferred methods. We also present a novel adaptive buffer processing strategy that parallelizes the analysis only when the observed workload leaves some CPU cores under-utilized. Using a profiler as case study, we show that deferred methods with the adaptive buffer processing strategy yield an average speedup of factor 4.09 on a quad-core machine. The speedup stems both from parallelization and from reduced contention.

Refereed DesignationRefereed
cgo12-camera_ready.pdf346.71 KB