IP Library Granted Patent US 11,188,363
Granted Patent B2
US 11,188,363 · App. 16/786,241 · Granted Nov 30, 2021

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 (Brooklyn, NY)
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,188,363
App. No.
16/786,241
Granted
Nov 30, 2021
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 (24)

1. A method of 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 method comprising:

performing, by a processor configured as a compiler, compile-time operations comprising:

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

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

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

specifying: (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 method 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 method of claim 2 , wherein the specifying step comprises specifying each task in the second set of predecessor tasks as a predecessor of the data block creation task.

4. The method of claim 1 , wherein the specifying step comprises specifying each task in the first set of predecessor tasks as a predecessor of the data block creation task.

5. The method of claim 1 , further comprising:

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

identifying 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 the specifying step comprises specifying: (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 method of claim 1 , further comprising:

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

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

specifying: (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 method 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 method of claim 6 , wherein the specifying step comprises specifying each task in the first set of successor tasks as a successor of the data block deletion task.

9. The method of claim 6 , further comprising:

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

identifying 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 the specifying step comprises specifying: (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 method of claim 9 , wherein the specifying step comprises specifying each task in the second set of successor tasks as a successor of the data block deletion task.

Assignments (3)
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 Oct 22, 2021
From: RESERVOIR LABS, INC.
To: LETHIN, RICHARD
Reel/Frame 057880/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2021
From: BASKARAN, MUTHU MANIKANDAN; MEISTER, BENOIT J.; PRADELLE, BENOIT
To: RESERVOIR LABS, INC.
Reel/Frame 057762/0441 →