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 of a process previously executed on a first processor of a multiprocessor;
determining a second execution time of a second thread of the process previously executed on a second processor of the multiprocessor, the first and second threads of the process being independent from one another and having previously executed in parallel, wherein the multiprocessor is a single die comprising the first and second processors; and
adjusting, according to first and second execution times of previously executed first and second threads, a first power level to the first processor and a second power level to the second processor of the multiprocessor,wherein adjusting the first and the second power levels is to cause the first and the second threads of the process to finish executing in parallel on the first and second processors at approximately the same time in future executions of the first and second threads of the process,wherein the future executions of the first and second threads being on the first and the second processors of the multiprocessor respectively, andwherein the adjusted first and second power levels have a total value below or equal to a total power budget for the multiprocessor.
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.
75 Citations
24 Claims
-
1. A method comprising:
-
determining a first execution time of a first thread of a process previously executed on a first processor of a multiprocessor; determining a second execution time of a second thread of the process previously executed on a second processor of the multiprocessor, the first and second threads of the process being independent from one another and having previously executed in parallel, wherein the multiprocessor is a single die comprising the first and second processors; and adjusting, according to first and second execution times of previously executed first and second threads, a first power level to the first processor and a second power level to the second processor of the multiprocessor, wherein adjusting the first and the second power levels is to cause the first and the second threads of the process to finish executing in parallel on the first and second processors at approximately the same time in future executions of the first and second threads of the process, wherein the future executions of the first and second threads being on the first and the second processors of the multiprocessor respectively, and wherein the adjusted first and second power levels have a total value below or equal to a total power budget for the multiprocessor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. 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 of a process previously executed on a first processor of a multiprocessor; determining a second execution time of a second thread of the process previously executed on a second processor of the multiprocessor, the first and second threads of the process being independent from one another and having previously executed in parallel, wherein the multiprocessor being a single die comprising the first and second processors; and adjusting, according to first and second execution times of previously executed first and second threads, a first power level to the first processor and a second power level to the second processor of the multiprocessor, wherein adjusting the first and the second power levels is to cause the first and the second threads of the process to finish executing in parallel on the first and second processors at approximately the same time in future executions of the first and second threads of the process, wherein the future executions of the first and the second threads being on the first and the second processors of the multiprocessor respectively, and wherein the adjusted first and second power levels have a total value below or equal to a total power budget for the multiprocessor. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. An apparatus comprising:
-
a first processor of a multiprocessor to operate at a first power level; a second processor of the multiprocessor to operate at a second power level, wherein the multiprocessor being a single die comprising the first and second processors; a first logic unit to determine execution time of a first thread of a process previously executed on the first processor; a second logic unit to determine execution time of a second thread of the process previously executed on the second processor, the first and second threads of the process being independent from one another and having previously executed in parallel; and an asymmetric power throttling module coupled to the first and second processors, wherein the asymmetric power throttling module is operable to adjust, according to first and second execution times of previously executed first and second threads, the first power level provided to the first processor and the second power level provided to the second processor, the adjusting to effectuate the first and second threads of the process to finish executing at approximately the same time in future executions of the first and second threads of the process, wherein the future executions of the first and second threads being on the first and the second processors respectively, and wherein the adjusted first and second power levels have a total value below or equal to a total power budget for the multiprocessor. - View Dependent Claims (20, 21)
-
-
22. A computer system comprising:
-
a Synchronized Dynamic Random Access Memory (SDRAM) unit; a multiprocessor coupled to the SDRAM unit, the multiprocessor being on a single die including a first processor and a second processor; 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 of a process previously executed on the first processor; determining a second execution time of a second thread of the process previously executed on the second processor, the first and second threads of the process being independent from one another and having previously executed in parallel; and adjusting, according to first and second execution times of previously executed first and second threads, a first power level to the first processor and a second power level to the second processor of the multiprocessor, wherein adjusting the first and the second power levels is to cause the first and the second threads of the process to finish executing on the first and second processors at approximately the same time in future executions of the first and second threads of the process, wherein the future executions of the first and second threads being on the first and second processors of the multiprocessor respectively, and wherein the adjusted first and second power levels have a total value below or equal to a total power budget for the multiprocessor. - View Dependent Claims (23, 24)
-
Specification