Static profitability control for speculative automatic parallelization
First Claim
1. A method for compilation comprising:
- analyzing source code;
identifying candidate code for parallelization, wherein said candidate code comprises a loop;
determining a profitability of parallelizing the candidate code, wherein determining the profitability comprises;
computing an execution time of a parallelized version of the loop without executing a parallelized version of the loop; and
computing an execution time of a non-parallelized version of the loop;
parallelizing the loop, in response to determining the execution time of a parallelized version of the loop is less than the execution time of a non-parallelized version of said loop by at least a given amount; and
forgoing parallelization of the loop, in response to determining the execution time of said parallelized version is not less than the execution time of the non-parallelized version of said loop by at least the given amount.
2 Assignments
0 Petitions
Accused Products
Abstract
A compilation method and mechanism for parallelizing program code. A method for compilation includes analyzing source code and identifying candidate code for parallelization. Having identified one or more suitable candidates, the profitability of parallelizing the candidate code is determined. If the profitability determination meets a predetermined criteria, then the candidate code may be parallelized. If, however, the profitability determination does not meet the predetermined criteria, then the candidate code may not be parallelized. Candidate code may comprises a loop, and determining profitability of parallelization may include computing a probability of transaction failure for the loop. Additionally, a determination of an execution time of a parallelized version of the loop is made. If the determined execution time is less than an execution time of a non-parallelized version of said loop by at least a given amount, then the loop may be parallelized. If the determined execution time is not less than an execution time of a non-parallelized version of said loop by at least a given amount, then the loop may not be parallelized.
29 Citations
15 Claims
-
1. A method for compilation comprising:
-
analyzing source code; identifying candidate code for parallelization, wherein said candidate code comprises a loop; determining a profitability of parallelizing the candidate code, wherein determining the profitability comprises; computing an execution time of a parallelized version of the loop without executing a parallelized version of the loop; and computing an execution time of a non-parallelized version of the loop; parallelizing the loop, in response to determining the execution time of a parallelized version of the loop is less than the execution time of a non-parallelized version of said loop by at least a given amount; and forgoing parallelization of the loop, in response to determining the execution time of said parallelized version is not less than the execution time of the non-parallelized version of said loop by at least the given amount. - View Dependent Claims (2, 3, 4, 5, 6, 15)
-
-
7. A computer readable storage medium comprising program instructions operable for compilation, wherein the program instructions are executable to:
-
analyze source code; identify candidate code for parallelization, wherein said candidate code comprises a loop; determine a profitability of parallelizing the candidate code, wherein to determine the profitability the program instructions are operable to; compute an execution time of a parallelized version of the loop without executing a parallelized version of the; and compute an execution time of a non-parallelized version of the loop; parallelize the loop, in response to determining the execution time of a parallelized version of the loop is less than the execution time of a non-parallelized version of said loop by at least a given amount; and forgo parallelization of the loop, in response to determining the execution time of said parallelized version is not less than the execution time of the non-parallelized version of said loop by at least the given amount. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computing system comprising:
-
a processor; a storage medium configured to store application source code; and a storage medium comprising program instructions, wherein the program instructions are executable by the processor to; analyze said source code; identify candidate code of the source code for parallelization, wherein said candidate code comprises a loop; determine a profitability of parallelizing the candidate code, wherein to determining the profitability the program instructions are executable to; compute an execution time of a parallelized version of the loop without executing a parallelized version of the candidate code; and compute an execution time of a non-parallelized version of the loop; parallelize the loop, in response to determining the execution time of a parallelized version of the loop is less than the execution time of a non-parallelized version of said loop by at least a given amount; and forgo parallelization of the loop, in response to determining the execution time of said parallelized version is not less than the execution time of the non-parallelized version of said loop by at least the given amount. - View Dependent Claims (14)
-
Specification