| | |
Summary: 1
ThreadSensitive Scheduling for SMT Processors
Abstract
A simultaneousmultithreaded (SMT) processor executes multiple instructions from multiple threads every cycle. As
a result, threads on SMT processors -- unlike those on traditional sharedmemory machines -- simultaneously share all
lowlevel hardware resources in a single CPU. Because of this finegrained resource sharing, SMT threads have the
ability to interfere or conflict with each other, as well as to share these resources to mutual benefit.
This paper examines threadsensitive scheduling for SMT processors. When more threads exist than hardware execu
tion contexts, the operating system is responsible for selecting which threads to execute at any instant, inherently
deciding which threads will compete for resources. Threadsensitive scheduling uses threadbehavior feedback to
choose the best set of threads to execute together, in order to maximize processor throughput. We introduce several
threadsensitive scheduling schemes and compare them to traditional oblivious schemes, such as roundrobin. Our
measurements show how these scheduling algorithms impact performance and the utilization of lowlevel hardware
resources. We also demonstrate how threadsensitive scheduling algorithms can be tuned to tradeoff performance
and fairness. For the workloads we measured, we show that an IPCbased threadsensitive scheduling algorithm can
achieve speedups over oblivious schemes of 7% to 15%, with minimal hardware costs.
1 Introduction
Simultaneous Multithreading (SMT) [22] is a processor design that combines the wideissue capabilities of modern
superscalars with the latencyhiding abilities of hardware multithreading. Using multiple onchip thread contexts, an
SMT processor issues instructions from multiple threads each cycle. The technique has been shown to boost proces
|