System and method for the distribution of a program among cooperating processors
AssigneeMANAGEMENT SERVICES GROUP, INC. d/b/a Global Technical Systems
InventorsRobert Gordy, Terry Spitzer
Life of this patent
Estimating the term…
Abstract
A Veil program analyzes the source code and data of a target program and determines how best to distribute the target program and data among the processors of a multi-processor computing system. The Veil program analyzes source code loops, data sizes and types to prepare a set of distribution attempts, whereby each distribution is run under a run-time evaluation wrapper and evaluated to determine the optimal distribution.
Claims24
A system for optimizing the operation of a program in a multiple-processor computing system, the system comprising:
- a computer system comprising a plurality of processors;
- a target program written to run on the computer system;
- a Veil program having coded therein a means to:
- (a) wrap the target program with a run-time analyzer;
- (b) select one parallelization strategy from a plurality of parallelization strategies;
- (c) parallelize the target program according to the one parallelization strategy;
- (d) execute the target program;
- (e) record execution results of the target program;
- and
- (f) if there are further parallelization strategies in the plurality of parallelization strategies, change the one parallelization strategy to a next parallelization strategy from the plurality of parallelization strategies and repeat steps a-f;
- (g) compare the execution results and select a best parallelization strategy having a best execution result;
- and
- (h) parallelize the target application using the best parallelization strategy with the best execution result.
A computer implemented method for parallelizing of a target program onto a plurality of processors, the method comprising:
- (a) wrapping the target program with a run-time analyzer;
- (b) selecting one parallelization strategy from a plurality of parallelization strategies;
- (c) parallelizing the target program according to the one parallelization strategy;
- (d) executing the target program on the plurality of processors;
- (e) recording execution results of the target program;
- and
- (f) if there are further parallelization strategies in the plurality of parallelization strategies, changing the one parallelization strategy to a next parallelization strategy from the plurality of parallelization strategies and repeating steps a-f.
A system for optimizing the operation of a program in a multiple-processor computing system, the system comprising:
- (a) a computer system comprising a plurality of processors;
- (b) a target program written to run on the computer system;
- (c) a means to wrap the target program with a run-time analyzer means;
- (d) a means to select one parallelization strategy from a plurality of parallelization strategies;
- (e) a means to parallelize the target program according to the one parallelization strategy;
- (f) a means to execute the target program;
- (g) a means to record execution results of the target program;
- and
- (h) if there are further parallelization strategies in the plurality of parallelization strategies, a means to change the one parallelization strategy to a next parallelization strategy from the plurality of parallelization strategies and repeat steps c-h;
- (i) a means to compare the execution results and select a best parallelization strategy having a best execution time;
- and
- (j) a means to parallelize the target application using the best parallelization strategy with the best execution time.
Dependencies are inferred from the claim text.