Systems and methods for automatic data management for an asynchronous task-based runtime
AssigneeSignifics and Elements, LLC
InventorsMuthu M. 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.
Claims21
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;
- 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;
- identifying a first program-based task associated with the source code of the program, the first program-based task using the first data variable;
- determining a plurality of data objects that are associated with the first data variable and that are used by the first program-based task;
- identifying from the first plurality of data blocks a set of data blocks that is associated with the plurality of data objects;
- generating EDT platform directives for distribution of the first set of data blocks across the plurality of processing nodes of the EDT platform;
- and
- associating with the first-program based task an EDT platform directive among the EDT platform directives for data block distribution based on the respective set of data blocks.
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;
- wherein computing the data access parameter comprises:
- computing a reuse factor associated with the first data object by determining and using one or more of:
- (i) a number of data elements in the first data block, (ii) a size of a data element in the first data block, (iii) a number of data elements in the first data object, (iv) a size of a data element in the first data object, (v) an expected time to copy the first data block, and (vi) an expected time to construct the first data object at the first node.
Dependencies are inferred from the claim text.