Method for automated deployment of a software program onto a multi-processor architecture
First Claim
1. A method for assigning, scheduling and allocating tasks that comprise a problem, to multiple physical processors in a multi-processor architecture, said method enabling allocation of said tasks to multiple physical processors arranged in any of a plurality of target architectures, said method comprising the computer implemented steps of:
- (a) deriving through user-computer interaction, a data flow graph (DFG) of tasks to be performed to solve said problem;
(b) determining execution time cost values for primitive operations comprising each task and said problem;
(c) pre-assigning said tasks to logical processors, a logical processor comprising a data structure, said pre-assigning partitioning said DFG into subgraph execution programs (SEPs) employing said execution time cost values and target multi-processor architecture data and iteratively modifying partitioning of said SEPs to accomplish set cost criteria;
(d) pre-scheduling said pre-assigned tasks based upon a performance criteria that, at least, assures that pre-scheduled tasks are data dependent only upon data from earlier performed tasks; and
(e) deploying code comprising each of said logical processors and their pre-assigned tasks to physical processors arranged in a provided target multi-processor architecture, said deploying using data indicating current utilization of said physical processors arranged in said chosen target architecture to map each logical processor and pre-assigned task onto a physical processor.
3 Assignments
0 Petitions
Accused Products
Abstract
A method is employed for pre-assignment and pre-scheduling of tasks that enables allocation across multiple physical processors arranged in a variety of architectures. The method comprises the steps of: constructing a DFG of tasks to be performed to provide a solution for a problem; determining cost values for each task and the overall problem, such cost values taking into account a target multiprocessor architecture and factors such as elapsed task execution times. The method pre-assigns the tasks to logical processors and assures that inter-dependent tasks are executable by logical processors that are within required communications delay criteria of each other. The assigning action attempts to arrive at a minimal cost value for all tasks comprising the problem. The pre-assigned tasks are then pre-scheduled based upon a performance criteria and are converted to machine code. The machine code is then deployed to physical processors in the target multi-processor architecture. The deploying action maps the logical processors'"'"' pre-assigned programs (comprising assigned tasks) onto physical processors, using data regarding the multi-processor architecture and the current utilization of the physical processors in the architecture, all while assuring that inter-dependent tasks are mapped so as to fulfill interprocessor communication delay criteria.
126 Citations
8 Claims
-
1. A method for assigning, scheduling and allocating tasks that comprise a problem, to multiple physical processors in a multi-processor architecture, said method enabling allocation of said tasks to multiple physical processors arranged in any of a plurality of target architectures, said method comprising the computer implemented steps of:
-
(a) deriving through user-computer interaction, a data flow graph (DFG) of tasks to be performed to solve said problem; (b) determining execution time cost values for primitive operations comprising each task and said problem; (c) pre-assigning said tasks to logical processors, a logical processor comprising a data structure, said pre-assigning partitioning said DFG into subgraph execution programs (SEPs) employing said execution time cost values and target multi-processor architecture data and iteratively modifying partitioning of said SEPs to accomplish set cost criteria; (d) pre-scheduling said pre-assigned tasks based upon a performance criteria that, at least, assures that pre-scheduled tasks are data dependent only upon data from earlier performed tasks; and (e) deploying code comprising each of said logical processors and their pre-assigned tasks to physical processors arranged in a provided target multi-processor architecture, said deploying using data indicating current utilization of said physical processors arranged in said chosen target architecture to map each logical processor and pre-assigned task onto a physical processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
Specification