Systems and methods for automatic data management for an asynchronous task-based runtime
AssigneeReservoir Labs, Inc.
InventorsMuthu Manikandan Baskaran, Benoit J. Meister, Benoit Pradelle
Life of this patent
Estimating the term…
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.
Claims6
A method of creating, distributing, and deleting data blocks to be used by one or more tasks to be executed by a plurality of processing nodes in an event-driven task (EDT) platform, the method comprising:
- performing, by a processor configured as a compiler, compile-time operations comprising:
- identifying a first data variable in the source code of the program;
- determining from the source code a size and initialization of the first data variable;
- determining a first set of data blocks associated with the first data variable, based on at least one of:
- (i) a specified data block size, (ii) a number of processing nodes in the EDT platform;
- and (iii) memory capacity at a processing node in the EDT platform;
- and
- specifying in a modified program, a first data-block-creation task for creating and initializing a first data block from the first set of data blocks during execution of the modified program by the EDT platform.
2-12. (canceled)
A method of facilitating data access by a task to be executed by one of a plurality of processing nodes in an event-driven task (EDT) platform, the method comprising:
- performing, by a processor configured as a compiler, compile-time operations comprising:
- identifying a first data object used by a first task that is derived from source code of a program and that is executable on a first processing node of the EDT platform;
- identifying a first data block associated with the first data object, the first data block being stored at a second processing node;
- computing a data access parameter corresponding to the first data object;
- and
- if the data access parameter is at least equal to a specified threshold, inserting in the first task a customized data access operation, for accessing the first data block via a local copy thereof at the first processing node;
- and
- otherwise, inserting in the first task a data access operation supplied by the EDT platform, for accessing the first data block from the second processing node.
14-24. (canceled)
A system for creating, distributing, and deleting data blocks to be used by one or more tasks to be executed by a plurality of processing nodes in an event-driven task (EDT) platform, 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 first data variable in the source code of the program;
- determine from the source code a size and initialization of the first data variable;
- determine a first set of data blocks associated with the first data variable, based on at least one of:
- (i) a specified data block size, (ii) a number of processing nodes in the EDT platform;
- and (iii) memory capacity at a processing node in the EDT platform;
- and
- specify in a modified program, a first data-block-creation task for creating and initializing a first data block from the first set of data blocks during execution of the modified program by the EDT platform.
26-48. (canceled)
Dependencies are inferred from the claim text.