Load balancing for multi-threaded applications via asymmetric power throttling
First Claim
Patent Images
1. A method, comprising:
- determining a first execution time of a first thread executing on a first processing unit of a multiprocessor;
determining a second execution time of a second thread executing on a second processing unit of the multiprocessor, the first and second threads executing in parallel; and
setting power to the first and second processing units to effectuate the first and second threads to finish executing at approximately the same time in future executions of the first and second threads.
1 Assignment
0 Petitions
Accused Products
Abstract
A first execution time of a first thread executing on a first processing unit of a multiprocessor is determined. A second execution time of a second thread executing on a second processing unit of the multiprocessor is determined, the first and second threads executing in parallel. Power is set to the first and second processing units to effectuate the first and second threads to finish executing at approximately the same time in future executions of the first and second threads. Other embodiments are also described and claimed.
68 Citations
20 Claims
-
1. A method, comprising:
-
determining a first execution time of a first thread executing on a first processing unit of a multiprocessor;
determining a second execution time of a second thread executing on a second processing unit of the multiprocessor, the first and second threads executing in parallel; and
setting power to the first and second processing units to effectuate the first and second threads to finish executing at approximately the same time in future executions of the first and second threads. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An article of manufacturing, comprising:
-
a machine-accessible medium including instructions that, if executed by a machine, cause the machine to perform operations comprising;
determining a first execution time of a first thread executing on a first processing unit of a multiprocessor;
determining a second execution time of a second thread executing on a second processing unit of the multiprocessor, the first and second threads executing in parallel;
increasing power provided to the first processing unit at a future execution of the first thread in response to the first execution time being substantially greater than the second execution time; and
decreasing power provided to the second processing unit at a future execution of the second thread in response to the first execution time being substantially greater than the second execution time, wherein power provided to the first and second processing units is maintained within a total power budget for the multiprocessor. - View Dependent Claims (11, 12, 13, 14)
-
-
15. An apparatus, comprising:
-
a first processing unit and a second processing unit; and
an asymmetric power throttling module coupled to the first and second processing units, the asymmetric power throttling to increase power provided to the first processing unit and to decrease power provided to the second processing unit in response to a first execution time of a first thread having executed on the first processing unit being substantially greater than a second execution time of a second thread having executed on the second processing unit. - View Dependent Claims (16, 17)
-
-
18. A computer system, comprising:
-
a Synchronized Dynamic Random Access Memory (SDRAM) unit;
a multiprocessor coupled to the SDRAM unit, the multiprocessor including a first core and a second core;
a machine-accessible medium coupled to the multiprocessor, the machine-accessible medium including instructions that, if executed by the multiprocessor, cause the multiprocessor to perform operations comprising;
determining a first execution time of a first thread executing on the first core;
determining a second execution time of a second thread executing on the second core, the first and second threads executing in parallel;
increasing power provided to the first core in response to the first execution time being substantially greater than the second execution time; and
decreasing power provided to the second core in response to the first execution time being substantially greater than the second execution time. - View Dependent Claims (19, 20)
-
Specification