Technical report detail

Exploiting Under-Utilized Cores with Deferred Methods

by Danilo Ansaloni, Walter Binder, Abbas Heydarnoori, Lydia Y. Chen

Effective parallelization of fine-grained tasks, such as in dynamic program analysis, is challenging because thread communication overheads may outweigh the benefits of parallelism. In this paper, we address this issue with deferred methods, a novel Java framework that aggregates invocations of analysis methods in thread-local buffers and processes them altogether when a buffer is full. The framework supports pluggable buffer processing strategies. We present an adaptive strategy that combines synchronous buffer processing (by the thread that has filled the buffer) and asynchronous buffer processing (using a thread pool). This strategy adapts at runtime to the CPU utilization of the workload and exploits under-utilized cores when possible. As case studies, we consider two dynamic program analyses, a profiler and a data race detector, which we apply to standard benchmarks. A thorough performance evaluation confirms that our framework together with the adaptive buffer processing strategy yields an average speedup of factor 2.2-2.7 for our case studies on two different quad-core machines.

Technical report 2010/07, August 2010

BibTex entry

@techreport{10exploiting, author = {Danilo Ansaloni and Walter Binder and Abbas Heydarnoori and Lydia Y. Chen}, title = {Exploiting Under-Utilized Cores with Deferred Methods}, institution = {University of Lugano}, number = {2010/07}, year = 2010, month = aug }