发明名称 Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system
摘要 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.
申请公布号 US9250953(B2) 申请公布日期 2016.02.02
申请号 US201314077899 申请日期 2013.11.12
申请人 Oxide Interactive LLC 发明人 Kipp Timothy James
分类号 G06F9/46;G06F9/48;G06F9/50 主分类号 G06F9/46
代理机构 Nixon Peabody LLP 代理人 Nixon Peabody LLP
主权项 1. A multi-thread system, comprising: one or more processors; 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 of at least one of the one or more processors; and a scheduler logic component operated by the processor, the scheduler logic component assigning the worker threads in the worker thread pool to execute the task group queues according to the hierarchy of task group queues, wherein the assigning by the scheduler logic component includes assigning a single one of the worker threads to a single one of the tasks of one of the task group queues to execute the single one of the tasks, and wherein each of the worker threads has an associated state used by the task scheduler for efficient scheduling, the state including an application identifier (ID) that is unique for each of the worker threads in the application and a task group ID that is unique for each of the worker threads in the task group.
地址 Towson MD US