Method and system of a hierarchical task scheduler for a multi-thread system
AssigneeOxide Interactive, LLC
InventorTimothy James Kipp
Life of this patent
Estimating the term…
Abstract
A method for scheduling tasks from a program executed by a multi-processor core system is disclosed. The method includes a scheduler that groups a plurality of tasks, each having an assigned priority, by priority in a task group. The task group is assembled with other task groups having identical priorities in a task group queue. A hierarchy of task group queues is established based on priority levels of the assigned tasks. Task groups are assigned to one of a plurality of worker threads based on the hierarchy of task group queues. Each of the worker threads is associated with a processor in the multi-processor system. The tasks of the task groups are executed via the worker threads according to the order in the hierarchy.
Claims18
A task scheduler for a scheduling a plurality of tasks of a program to be executed on one or more worker threads, the task scheduler comprising:
- a task group component that creates task groups by assigning each of the plurality of tasks to a task group;
- a task group queue component that organizes the task groups according to a predetermined criteria in a task group queue and creates a hierarchy of task group queues;
- a worker thread pool including a group of worker threads each associated with one of a plurality of processor cores;
- and
- a scheduler logic component that assigns the worker threads in the worker thread pool to execute the task group queues according to the hierarchy of task group queues.
A method for scheduling tasks in a multi-core system, the method comprising:
- grouping a plurality of tasks, each having an assigned priority, by priority in a task group;
- assembling the task group with other task groups having identical priorities in a task group queue;
- establishing a hierarchy of task group queues based on priority levels of the assigned tasks;
- assigning task groups to one of a plurality of worker threads based on the hierarchy of task group queues, wherein each of the worker threads is associated with a processor core in the multi-core system;
- and
- executing the tasks of the task groups via the worker threads according to the order in the hierarchy.
A non-transitory, machine readable medium having stored thereon instructions for scheduling tasks for execution by a plurality of processor cores, the stored instructions comprising machine executable code, which when executed by at least one machine processor, causes the machine processor to:
- group a plurality of tasks, each having an assigned priority, by priority in a task group;
- assemble the task group with other task groups having identical priorities in a task group queue;
- establish a hierarchy of task group queues based on priority levels of the assigned tasks;
- assign task groups to one of a plurality of worker threads based on the hierarchy of task group queues, wherein each of the worker threads is associated with a processor core of the plurality of processor cores;
- and
- execute the tasks of the task groups via the worker threads according to the order in the hierarchy.
Dependencies are inferred from the claim text.