IP Library › Granted Patent US 11,893,416
Granted Patent B2
US 11,893,416 · App. 17/702,705 · Granted Feb 6, 2024

Determining a job group status based on a relationship between a generation counter value and a ticket value for scheduling the job group for execution

Inventor: Benoit Sevigny (Montréal, CA)
Assignee: Unity IPR ApS
G06F9/4881G06F9/5044G06F2209/483G06F2209/484
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 11,893,416
App. No.
17/702,705
Granted
Feb 6, 2024
Kind
B2
Abstract

A job scheduler system includes one or more hardware processors, a memory including a job group queue stored in the memory, and a job scheduler engine configured to create a first job group in the job group queue, the first job group includes a generation counter having an initial value, receive a first request to steal the first job group, determine a state of the first job group based at least in part on the generation counter, the state indicating that the first job group is available to steal, based on the determining the state of the first job group, atomically increment the generation counter, thereby making the first job group unavailable for stealing, and alter an execution order of the first job group ahead of at least one other job group in the job group queue.

Claims (32)

1. A system comprising:

one or more computer processors;

one or more computer memories;

a set of instructions stored in the one or more computer memories, the set of instructions configuring the one or more computer processors to perform operations, the operations comprising:

based on a determination that a job group has entered a job group queue, creating a job group container, the creating of the job group container including allocating a memory region for the job group, the job group including a job list;

based on a determination that the job group container is in a finished state, flagging the job group container for recycling; and

based on a determination that an additional job group has entered the job group queue, assigning the additional job group to the job group container without deallocating the memory region, the additional job group including an additional job list.

2. The system of claim 1 , the operations further comprising, based on the flagging of the job group container for recycling, placing the job group container on a recycling stack.

3. The system of claim 1 , wherein the additional job group is dependent on the job group.

4. The system of claim 1 , wherein the determination that the job group container is in a finished state is based on a determination that the memory region is empty.

5. The system of claim 3 , wherein the determination that e memory region is empty is based on the job group being stolen.

6. The system of claim 1 , wherein the job group is associated with a generation counter.

7. The system of claim 5 , wherein the determination that the job group container is in a finished state is based on the generation counter being equal to a predetermined value.

8. A method comprising:

based on a determination that a job group has entered a job group queue, creating a job group container, the creating of the job group container including allocating a memory region for the job group, the job group including a job list;

based on a determination that the job group container is in a finished state, flagging the job group container for recycling; and

based on a determination that an additional job group has entered the job group queue, assigning the additional job group to the job group container without deallocating the memory region, the additional job group including an additional job list.

9. The method of claim 7 , the operations further comprising, based on the flagging of the job group container for recycling, placing the job group container on a recycling stack.

10. The method of claim 7 , wherein the additional job group is dependent on the job group.

11. The method of claim 7 , wherein the determination that the job group container is in a finished state is based on a determination that the memory region is empty.

12. The method of claim 10 , wherein the determination that the memory region is empty is based on the job group being stolen.

13. The method of claim 7 , wherein the job group is associated with a generation counter.

14. The method of claim 12 , wherein the determination that the job group container is in a finished state is based on the generation counter being equal to a predetermined value.

15. A non-transitory computer-readable storage medium including a set of instructions that, when executed by one or more computer processors, cause the one or more computer processors to perform operations, the operations comprising:

based on a determination that a job group has entered a job group queue, creating a job group container, the creating of the job group container including allocating a memory region for the job group, the job group including a job list;

based on a determination that the job group container is in a finished state, flagging the job group container for recycling; and

based on a determination that an additional job group has entered the job group queue, assigning the additional job group to the job group container without deallocating the memory region, the additional job group including an additional job list.

16. The non-transitory computer-readable storage medium of claim 14 , the operations further comprising, based on the flagging of the job group container for recycling, placing the job group container on a recycling stack.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the additional job group is dependent on the job group.

18. The non-transitory computer-readable storage medium of claim 14 , wherein the determination that the job group container is in a finished state is based on a determination that the memory region is empty.

19. The non-transitory computer-readable storage medium of claim 17 , wherein the determination that the memory region is empty is based on the job group being stolen.

20. The non-transitory computer-readable storage medium of claim 14 , wherein the job group is associated with a generation counter.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2025
From: UNITY IPR APS
To: UNITY TECHNOLOGIES APS
Reel/Frame 072926/0322 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2022
From: SEVIGNY, BENOIT
To: UNITY IPR APS
Reel/Frame 059382/0894 →
Continuity (5)
Continuation 16745215 · Jan 16, 2020
Continuation 15691651 · Aug 30, 2017
Continuation 15192309 · Jun 24, 2016
Provisional Application 62252897 · Nov 9, 2015
Related Publication 20220283854A1 · Sep 8, 2022
Cited By (1)
US 12,265,848