Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (2005)
St. Louis, Missouri
Sept. 17, 2005 to Sept. 21, 2005
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/PACT.2005.17
Yonghong Song , Scalable Systems Group Sun Microsystems, Inc.
Spiros Kalogeropulos , Scalable Systems Group Sun Microsystems, Inc.
Partha Tirumalai , Scalable Systems Group Sun Microsystems, Inc.
<p>Helper threading is a technique that utilizes a second core or logical processor in a multi-threaded system to improve the performance of the main thread. A helper thread executes in parallel with the main thread that it attempts to accelerate. In this paper, the helper thread merely prefetches data into a shared cache and does not incur any other programmer visible effects. Helper thread prefetching has been proposed as a viable solution in various scenarios where it is dif?cult to prefetch efficiently within the main thread itself. This paper presents our helper threading experience on SUN?s second dual-core SPARC microprocessor, the UltraSPARC IV+. The two cores on this processor share an on-chip L2 and an off-chip L3 cache. We present a compiler framework to automatically construct helper threads and evaluate our scheme on the UltraSPARC IV+ processor. Our preliminary results using helper threads on the SPEC CPU2000 suite show gains of up to 22% on programs that suffer substantial L2 cache misses while at the same time incurring negligible losses on programs that do not suffer L2 cache misses.</p>
P. Tirumalai, Y. Song and S. Kalogeropulos, "Design and Implementation of a Compiler Framework for Helper Threading on Multi-core Processors," PACT 2005. 14th International Conference on Parallel Architectures and Compilation Techniques(PACT), St. Louis, MO, USA, 2005, pp. 99-109.