IP Library Granted Patent US 11,579,905
Granted Patent B2
US 11,579,905 · App. 17/510,571 · Granted Feb 14, 2023

Systems and methods for automatic data management for an asynchronous task-based runtime

Inventors: Muthu Manikandan Baskaran (Old Tappan, NJ); Benoit J. Meister (New York, NY); Benoit Pradelle (Cologne, DE)
Assignee: Reservoir Labs, Inc.
G06F9/45516G06F8/41G06F8/443
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,579,905
App. No.
17/510,571
Granted
Feb 14, 2023
Kind
B2
Abstract

A compilation system can define, at compile time, the data blocks to be managed by an Even Driven Task (EDT) based runtime/platform, and can also guide the runtime/platform on when to create and/or destroy the data blocks, so as to improve the performance of the runtime/platform. The compilation system can also guide, at compile time, how different tasks may access the data blocks they need in a manner that can improve performance of the tasks.

Claims (25)

1. A system for creating at runtime, in a memory efficient manner, one or more data blocks to be used by one or more tasks to be executed by an event-driven task (EDT) platform comprising a plurality of processing nodes, the system comprising:

a first processor; and

a first memory in electrical communication with the first processor, the first memory comprising instructions which, when executed by a processing unit comprising at least one of the first processor and a second processor, and in electronic communication with a memory module comprising at least one of the first memory and a second memory, configure the processing unit as a compiler programmed to:

identify a data block to be used by a first task to be executed by the event-driven task (EDT) platform;

identify a first set of predecessor tasks comprising each task that is: (i) predecessor to the first task, and (ii) independent of the data block;

generate a data block creation task directing creation of the data block; and

specify: (i) the data block creation task as a predecessor of the first task; and (ii) at least one task in the first set of predecessor tasks as a predecessor of the data block creation task, thereby delaying runtime creation and corresponding memory usage of the data block.

2. The system of claim 1 , wherein the first set of predecessor tasks consists essentially of each task that is: (i) an immediate predecessor to the first task, and (ii) independent of the data block.

3. The system of claim 2 , wherein to perform the specify operation, the instructions program the processing unit to specify each task in the second set of predecessor tasks as a predecessor of the data block creation task.

4. The system of claim 1 , wherein to perform the specify operation, the instructions program the processing unit to specify each task in the first set of predecessor tasks as a predecessor of the data block creation task.

5. The system of claim 1 , wherein the instructions further program the processing unit to:

identify a second task to be executed by the event-driven task (EDT) platform, the second task also using the data block; and

identify a second set of predecessor tasks comprising each task that is: (i) predecessor to the second task, and (ii) independent of the data block,

wherein to perform the specify operation, the instructions program the processing unit to specify: (i) the data block creation task as a predecessor of the second task; and (ii) at least one task in the second set of predecessor tasks as a predecessor of the data block creation task.

6. The system of claim 1 , wherein the instructions program the processing unit to:

identify a first set of successor tasks comprising each task that is: (i) successor of the first task, and (ii) independent of the data block;

generate a data block deletion task directing deletion of the data block; and

specify: (i) the data block deletion task as a successor of the first task; and (ii) at least one task in the first set of successor tasks as a successor of the data block deletion task, thereby advancing runtime deletion and corresponding freeing of memory allocated to the data block.

7. The system of claim 6 , wherein the first set of successor tasks consists essentially of each task that is: (i) an immediate successor of the first task, and (ii) independent of the data block.

8. The system of claim 6 , wherein to perform the specify operation, the instructions program the processing unit to specify each task in the first set of successor tasks as a successor of the data block deletion task.

9. The system of claim 6 , wherein the instructions program the processing unit to:

identify a second task to be executed by the event-driven task (EDT) platform, the second task also using the data block; and

identify a second set of successor tasks comprising each task that is: (i) successor of the second task, and (ii) independent of the data block,

wherein to perform the specify operation, the instructions program the processing unit to specify: (i) the data block deletion task as a successor of the second task; and (ii) at least one task in the second set of successor tasks as a successor of the data block deletion task.

10. The system of claim 9 , wherein to perform the specify operation, the instructions program the processing unit to specify each task in the second set of successor tasks as a successor of the data block deletion task.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2025
From: RESERVOIR LABS, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 070167/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2022
From: BASKARAN, MUTHU MANIKANDAN; MEISTER, BENOIT J.; PRADELLE, BENOIT
To: RESERVOIR LABS, INC.
Reel/Frame 059801/0939 →