Lock-free work-stealing thread scheduler
AssigneeHewlett Packard Enterprise Development LP
InventorsMATTHEW S. GATES, Joel E. Lilienkamp, Alex Veprinsky, Susan Agten
Life of this patent
Estimating the term…
Loading patent…
AssigneeHewlett Packard Enterprise Development LP
InventorsMATTHEW S. GATES, Joel E. Lilienkamp, Alex Veprinsky, Susan Agten
Estimating the term…
Systems and methods are provided for lock-free thread scheduling. Threads may be placed in a ring buffer shared by all computer processing units (CPUs), e.g., in a node. A thread assigned to a CPU may be placed in the CPU's local run queue. However, when a CPU's local run queue is cleared, that CPU checks the shared ring buffer to determine if any threads are waiting to run on that CPU, and if so, the CPU pulls a batch of threads related to that ready-to-run thread to execute. If not, an idle CPU randomly selects another CPU to steak threads from, and the idle CPU attempts to dequeue a thread batch associated with the CPU from the shared ring buffer. Polling may be handled through the use of a shared poller array to dynamically distribute polling across multiple CPUs.
A central processing unit (CPU), comprising:
A central processing unit (CPU), comprising:
Dependencies are inferred from the claim text.