Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system
First Claim
Patent Images
1. A method of scheduling thread execution in a computer, comprising the steps of:
- (a) creating a thread in a memory of a computer, (b) specifying one or more scheduling characteristics of the thread;
(c) scheduling execution of the thread in the computer in accordance with the specified scheduling characteristics; and
(d) modifying one or more of the scheduling characteristics of the thread during the execution of the thread.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for dynamically exploiting affinity, locality, and load balancing in scheduling the execution of multi-threaded user programs in a multi-processor computer system. Affinity, locality, and load balancing characteristics are specified at thread creation time and can be dynamically changed during thread execution, either by the user program itself or by any other process or entity with sufficient privileges and information. A central schedule queue and one or more per-processor local schedule queues are used to schedule the threads based on the dynamically changing affinity, locality, and load balancing characteristics.
-
Citations
75 Claims
-
1. A method of scheduling thread execution in a computer, comprising the steps of:
-
(a) creating a thread in a memory of a computer, (b) specifying one or more scheduling characteristics of the thread;
(c) scheduling execution of the thread in the computer in accordance with the specified scheduling characteristics; and
(d) modifying one or more of the scheduling characteristics of the thread during the execution of the thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A multi-threaded computer system, comprising:
-
(a) one or more processors;
(b) means, performed by one of the processors, for creating a thread in a memory of the computer system;
(c) means, performed by one of the processors, for specifying one or more scheduling characteristics of the thread;
(d) means, performed by one of the processors, for scheduling execution of the thread in the computer in accordance with the specified scheduling characteristics; and
(e) means, performed by one of the processors, for modifying one or more of the scheduling characteristics of the thread during the execution of the thread. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
-
51. A carrier embodying logic for scheduling thread execution in one or more processors, the logic comprising the steps of:
-
(a) creating a thread in a memory of the processor;
(b) specifying one or more scheduling characteristics of the thread;
(c) scheduling execution of the thread in one or more of the processors in accordance with the specified scheduling characteristics; and
(d) modifying one or more of the scheduling characteristics of the thread during the execution of the thread. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75)
-
Specification