摘要 |
Embodiments include computing devices, systems, and methods for task-based handling of repetitive processes in parallel. At least one processor of the computing device, or a specialized hardware controller, may be configured to partition iterations of a repetitive process and assign the partitions to initialized tasks to be executed in parallel by a plurality of processor cores. Upon completing a task, remaining divisible partitions of the repetitive process of ongoing tasks may be subpartitioned and assigned to the ongoing task, and the completed task or a newly initialized task. Information about the iteration space for a repetitive process may be stored in a descriptor table, and status information for all partitions of a repetitive process stored in a status table. Each processor core may have an associated local table that tracks iteration execution of each task, and is synchronized with the status table. |
主权项 |
1. A method of task-based handling of repetitive processes, comprising:
initializing, by a central controller, a set of descriptor table entries for maintaining in a descriptor table, wherein the descriptor table entries are for iteration space information of a repetitive process ready for execution; initializing, by the central controller, a set of status table entries for maintaining in a status table, wherein the status table entries are for iteration space information of the repetitive process; partitioning, by the central controller, iterations of the repetitive process into a first plurality of partitions; initializing, by the central controller, a first task for executing iterations of a first partition; initializing, by the central controller, a second task for executing iterations of a second partition; assigning, by the central controller, the first task to execute by a first processor or processor core and the second task to execute by a second processor or processor core in parallel; updating, by multiple local controllers each associated with one of the first and second processors or processor cores, multiple local tables to include partition execution status information for a task assigned to execute on the respective processor or processor core, wherein each table is associated with one of the first and second processors or processor cores; and executing the first task by the first processor or processor core and executing the second task by the second processor or processor core in parallel. |