CACHE-AWARE THREAD SCHEDULING IN MULTI-THREADED SYSTEMS
First Claim
1. A method for predictively scheduling a thread in a multi-threaded processor, comprising:
- executing a first thread in a processor core associated with a shared cache;
while executing the first thread, measuring one or more metrics to characterize the first thread;
using the characterization of the first thread and a characterization of a second thread to predict a performance impact associated with simultaneously executing the second thread in a second processor core which is associated with the cache; and
when the predicted performance impact indicates that executing the second thread on the second processor core will improve performance for the multi-threaded processor, executing the second thread on the second processor core.
1 Assignment
0 Petitions
Accused Products
Abstract
The disclosed embodiments provide a system that facilitates scheduling threads in a multi-threaded processor with multiple processor cores. During operation, the system executes a first thread in a processor core that is associated with a shared cache. During this execution, the system measures one or more metrics to characterize the first thread. Then, the system uses the characterization of the first thread and a characterization for a second, second thread to predict a performance impact that would occur if the second thread were to simultaneously execute in a second processor core that is also associated with the cache. If the predicted performance impact indicates that executing the second thread on the second processor core will improve performance for the multi-threaded processor, the system executes the second thread on the second processor core.
73 Citations
20 Claims
-
1. A method for predictively scheduling a thread in a multi-threaded processor, comprising:
-
executing a first thread in a processor core associated with a shared cache; while executing the first thread, measuring one or more metrics to characterize the first thread; using the characterization of the first thread and a characterization of a second thread to predict a performance impact associated with simultaneously executing the second thread in a second processor core which is associated with the cache; and when the predicted performance impact indicates that executing the second thread on the second processor core will improve performance for the multi-threaded processor, executing the second thread on the second processor core. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for predictively scheduling a thread in a multi-threaded processor, the method comprising:
-
executing a first thread in a processor core associated with a shared cache; while executing the first thread, measuring one or more metrics to characterize the first thread; using the characterization of the first thread and a characterization of a second thread to predict a performance impact associated with simultaneously executing the second thread in a second processor core which is associated with the cache; and when the predicted performance impact indicates that executing the second thread on the second processor core will improve performance for the multi-threaded processor, executing the second thread on the second processor core. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A multi-threaded processor that facilitates predictive thread scheduling, comprising:
-
a first processor core; a second processor core; a first cache associated with the first processor core and the second processor core; a measurement mechanism that is configured to measure one or more metrics to characterize a first thread executing in the first processor core; a prediction mechanism that is configured to use the characterization of the first thread and a characterization of a second thread to predict a performance impact associated with simultaneously executing the second thread in the second processor core; and a scheduling mechanism that is configured to execute the second thread on the second processor core when the predicted performance impact indicates that executing the second thread on the second processor will improve performance for the multi-threaded processor.
-
Specification