Design and Implementation of a Compiler Framework for Helper Threading on Multi-core Processors

  • Authors:
  • Yonghong Song;Spiros Kalogeropulos;Partha Tirumalai

  • Affiliations:
  • Scalable Systems Group Sun Microsystems, Inc.;Scalable Systems Group Sun Microsystems, Inc.;Scalable Systems Group Sun Microsystems, Inc.

  • Venue:
  • Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.