Method and system for scheduling a thread in a multiprocessor system
First Claim
1. A method for scheduling a thread on a plurality of processors comprising:
- obtaining a first state of a first processor in the plurality of processors and a second state of a second processor in the plurality of processors, wherein the thread is last executed on the first processor, and wherein the first state of the first processor comprises a state of a cache of the first processor;
obtaining a first estimated instruction rate to execute the thread on the first processor using an estimated instruction rate function and the first state;
obtaining a second estimated instruction rate for the second processor using the estimated instruction rate function and the second state;
summing the second estimated instruction rate and the first estimated instruction rate to obtain a first estimated global throughput for executing the thread on the first processor;
obtaining a second estimated global throughput for executing the thread on the second processor using the second state;
comparing the first estimated global throughput with the second estimated global throughput to obtain a comparison result; and
executing the thread, based on the comparison result, on one selected from a group consisting of the first processor and the second processor, wherein the thread performs an operation on one of the plurality of processors.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for scheduling a thread on a plurality of processors that includes obtaining a first state of a first processor in the plurality of processors and a second state of a second processor in the plurality of processors, wherein the thread is last executed on the first processor, and wherein the first state of the first processor includes the state of a cache of the first processor, obtaining a first estimated instruction rate to execute the thread on the first processor using an estimated instruction rate function and the first state, obtaining a first estimated global throughput for executing the thread on the first processor using the first estimated instruction rate and the second state, obtaining a second estimated global throughput for executing the thread on the second processor using the second state, comparing the first estimated global throughput with the second estimated global throughput to obtain a comparison result, and executing the thread, based on the comparison result, on one selected from a group consisting of the first processor and the second processor, wherein the thread performs an operation on one of the plurality of processors.
12 Citations
18 Claims
-
1. A method for scheduling a thread on a plurality of processors comprising:
-
obtaining a first state of a first processor in the plurality of processors and a second state of a second processor in the plurality of processors, wherein the thread is last executed on the first processor, and wherein the first state of the first processor comprises a state of a cache of the first processor; obtaining a first estimated instruction rate to execute the thread on the first processor using an estimated instruction rate function and the first state; obtaining a second estimated instruction rate for the second processor using the estimated instruction rate function and the second state; summing the second estimated instruction rate and the first estimated instruction rate to obtain a first estimated global throughput for executing the thread on the first processor; obtaining a second estimated global throughput for executing the thread on the second processor using the second state; comparing the first estimated global throughput with the second estimated global throughput to obtain a comparison result; and executing the thread, based on the comparison result, on one selected from a group consisting of the first processor and the second processor, wherein the thread performs an operation on one of the plurality of processors. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for scheduling a thread on a plurality of processors comprising:
-
obtaining a first state of a first processor in the plurality of processors and a second state of a second processor in the plurality of processors, wherein the thread is last executed on the first processor, and wherein the first state of the first processor comprises a state of a cache of the first processor; obtaining a first estimated instruction rate to execute the thread on the first processor using an estimated instruction rate function and the first state; obtaining a first estimated global throughput for executing the thread on the first processor using the first estimated instruction rate and the second state; obtaining a second estimated instruction rate for the first processor using the estimated instruction rate function and the first state; obtaining an estimated state of the second processor using the second state, wherein the estimated state reflects the presence of an additional thread on the second processor; obtaining a third estimated instruction rate for the second processor using the estimated instruction rate function and the estimated state; summing the second estimated instruction rate and the third estimated instruction rate to obtain a second estimated global throughput for executing the thread on the second processor; comparing the first estimated global throughput with the second estimated global throughput to obtain a comparison result; and executing the thread, based on the comparison result, on one selected from a group consisting of the first processor and the second processor, wherein the thread performs an operation on one of the plurality of processors. - View Dependent Claims (8)
-
-
9. A system for scheduling a thread comprising:
-
a plurality of processors for executing the thread; and a scheduler configured to; obtain a first state of a first processor in the plurality of processors and a second state of a second processor in the plurality of processors, wherein the thread is last executed on the first processor, and wherein the first state of the first processor comprises a state of a cache of the first processor; obtain a first estimated instruction rate to execute the thread on the first processor using an estimated instruction rate function and the first state; obtain a second estimated instruction rate for the second processor using the estimated instruction rate function and the second state; sum the second estimated instruction rate and the first estimated instruction rate to obtain a first estimated global throughput; obtain a second estimated global throughput for executing the thread on the second processor using the second state; compare the first estimated global throughput with the second estimated global throughput to obtain a comparison result; and execute the thread, based on the comparison result, on one selected from the group consisting of the first processor and the second processor, wherein the thread performs an operation on one of the plurality of processors. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A distributed computer system for scheduling a thread on a plurality of processors comprising:
a plurality of nodes for; obtaining a first state of a first processor in the plurality of processors and a second state of a second processor in the plurality of processors, wherein the thread is last executed on the first processor, and wherein the first state of the first processor comprises a state of a cache of the first processor; obtaining a first estimated instruction rate to execute the thread on the first processor using an estimated instruction rate function and the first state; obtaining a second estimated instruction rate for the second processor using the estimated instruction rate function and the second state; summing the second estimated instruction rate and the first estimated instruction rate to obtain a first estimated global throughput; obtaining a second estimated global throughput for executing the thread on the second processor using the second state; comparing the first estimated global throughput with the second estimated global throughput to obtain a comparison result; and executing the thread, based on the comparison result, on one selected from a group consisting of the first processor and the second processor, wherein the thread performs an operation on one of the plurality of processors, wherein each node of the plurality of nodes comprises a hardware processor. - View Dependent Claims (16, 17, 18)
Specification