Lock-free job scheduler for multi-processor systems
AssigneeEMC Corporation
InventorsKonstantinos Krikellas, Florian Michael Waas, Mohamed Soliman
Life of this patent
Estimating the term…
Loading patent…
AssigneeEMC Corporation
InventorsKonstantinos Krikellas, Florian Michael Waas, Mohamed Soliman
Estimating the term…
A scalable job scheduler for a multi-thread, multi-processor system synchronizes and schedules jobs for execution by using lists and jobs counters for the numbers of active jobs. It minimizes synchronization overhead by using atomic operations for incrementing and decrementing the counters. The scheduler assigns jobs for execution, and can awake up an available thread to pick up work. A parent job spawns child jobs and maintains a job counter. Spawned jobs are added to the list for execution and the counter of waiting jobs is incremented. When execution of a job begins, the parent's counter of outstanding child jobs is decremented. A parent job is suspended until its counter of uncompleted spawned child jobs reaches zero. As a job is completed, the scheduler decrements the counter of active jobs, and assigns the next job in the queue to an available thread.
A method of scheduling and synchronizing a plurality of jobs for execution by a plurality of processing threads in a multi-processor system, comprising:
A method of scheduling and synchronizing job execution in a multi-core, multi-thread CPU comprising:
Computer readable non-transitory storage medium for storing instructions for controlling the operation of a computer to schedule and synchronize a plurality of jobs for execution by a plurality of threads in a multi-processor system, comprising instructions for:
Dependencies are inferred from the claim text.