IP Library Granted Patent US 10,187,452
Granted Patent B2
US 10,187,452 · App. 13/830,160 · Granted Jan 22, 2019

Hierarchical dynamic scheduling

Inventor: Isaac R. Nassi (Los Gatos, CA)
Assignee: TidalScale, Inc.
H04L67/10G06F9/455G06F9/5077G06F9/4856G06F9/5011G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,187,452
App. No.
13/830,160
Granted
Jan 22, 2019
Kind
B2
Abstract

Hierarchical dynamic scheduling is disclosed. A plurality of physical nodes is included in a computer system. Each node includes a plurality of processors. Each processor includes a plurality of hyperthreads. An abstraction of the nodes, processors, and hyperthreads forms a hierarchy. Upon receiving an indication that a hyperthread should be assigned, a dynamic search of the hierarchy is performed, beginning at the leaf level, for a process to assign to the hyperthread.

Claims (24)

1. A computer system, comprising:

a plurality of physical nodes, wherein each node includes a plurality of processors, and wherein an operating system is run collectively across the plurality of physical nodes;

wherein an abstraction of a configuration of the physical nodes and processors forms a hierarchy;

wherein, in response to an indication that a hyperthread included in a core of a processor is available for assignment, a dynamic search of the hierarchy is performed for continuations that are ready to run, wherein a continuation comprises a representation of a state of a suspended virtual processor, wherein the continuation comprises processor state including a set of saved registers, and wherein a virtual processor comprises a computing engine visible to the operating system;

wherein a node in the hierarchy is associated with a queue comprising a set of continuations that are ready to run, wherein the dynamic search begins at a leaf level of the hierarchy, and wherein the leaf level of the hierarchy corresponds to hyperthreads included in cores of the processors in the configuration;

wherein performing the dynamic search includes evaluating a cost function to determine which continuation to assign to the hyperthread, wherein evaluating the cost function includes determining an amount of time that a continuation has been queued, and wherein in response to determining that a continuation comprising a state of a suspended virtual processor is not identified in a queue at the leaf level of the hierarchy corresponding to the hyperthreads included in the cores of the processors of the configuration the dynamic search proceeds up the hierarchy; and

wherein a continuation to assign to the hyperthread is selected based at least in part on the dynamic search of the hierarchy, wherein the hyperthread is configured to resume execution of the selected continuation, and wherein resuming execution of the selected continuation includes implementing, on the hyperthread, a virtual processor associated with the selected continuation.

2. The computer system of claim 1 wherein the hyperthread is available for assignment subsequent to becoming blocked.

3. The computer system of claim 2 wherein the blocked hyperthread is designated an anonymous processor in response to becoming blocked.

4. The computer system of claim 2 wherein a continuation is dynamically created and stored in an event table in response to an indication that the hyperthread is blocked.

5. The computer system of claim 4 wherein the event table is stored on the node on which the hyperthread is located.

6. The computer system of claim 4 wherein the event table includes a plurality of continuations.

7. The computer system of claim 1 wherein the dynamic search is performed by a hyper-kernel.

8. The computer system of claim 1 , wherein the hierarchy comprises a set of scheduler objects, and wherein the node in the hierarchy comprises a scheduler object including the queue.

9. A method, comprising:

in response to an indication that a hyperthread included in a core of a processor is available for assignment, dynamically searching a hierarchy for continuations that are ready to run wherein the hierarchy comprises an abstraction of a configuration of a plurality of physical nodes and processors running on the physical nodes, wherein an operating system is run collectively across the plurality of physical nodes, wherein a continuation comprises a representation of a state of a suspended virtual processor, wherein the continuation comprises processor state including a set of saved registers, and wherein a virtual processor comprises a computing engine visible to the operating system;

wherein a node in the hierarchy is associated with a queue comprising a set of continuations that are ready to run, wherein the dynamic search begins at a leaf level of the hierarchy, and wherein the leaf level of the hierarchy corresponds to hyperthreads included in cores of the processors in the configuration;

wherein performing the dynamic search includes evaluating a cost function to determine which continuation to assign to the hyperthread, wherein evaluating the cost function includes determining an amount of time that a continuation has been queued, and wherein in response to determining that a continuation comprising a state of a suspended virtual processor is not identified in a queue at the leaf level of the hierarchy corresponding to the hyperthreads included in the cores of the processors of the configuration the dynamic search proceeds up the hierarchy; and

selecting, based at least in part on the dynamic search of the hierarchy, a continuation to assign to the hyperthread, wherein the hyperthread is configured to resume execution of the selected continuation, and wherein resuming execution of the selected continuation includes implementing, on the hyperthread, a virtual processor associated with the selected continuation.

10. The method of claim 9 , wherein the hyperthread is available for assignment subsequent to becoming blocked.

11. The method of claim 10 , wherein a continuation is dynamically created and stored in an event table in response to receiving an indication that the hyperthread is blocked.

12. The method of claim 11 , wherein the event table includes a plurality of continuations.

13. The method of claim 9 , wherein the dynamic search is performed by a hyper-kernel.

14. The method of claim 9 , wherein the hierarchy comprises a set of scheduler objects, and wherein the node in the hierarchy comprises a scheduler object including the queue.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2023
From: TIDALSCALE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 062282/0452 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 060724/0458 Recorded Dec 30, 2022
From: COMERICA BANK
To: TIDALSCALE, INC.
Reel/Frame 062252/0199 →
RELEASE OF SECURITY INTEREST Recorded Dec 15, 2022
From: COMERICA BANK
To: TIDALSCALE, INC.
Reel/Frame 062108/0963 →
SECURITY INTEREST Recorded Aug 4, 2022
From: TIDALSCALE, INC.
To: COMERICA BANK
Reel/Frame 060724/0458 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2013
From: NASSI, ISAAC R.
To: TIDALSCALE, INC.
Reel/Frame 030714/0753 →
Continuity (2)
Provisional Application 61692648 · Aug 23, 2012
Related Publication 20140059110A1 · Feb 27, 2014
Cited By (1)
US 12,445,532