Patent ID: 8881124
Filing Date: 2014-11-04
Classification: G06F

Abstract:
1. A loop parallelization method for generating an object program for parallel execution from a source program for sequential execution, the loop parallelization method comprising the steps of: analyzing whether a loop included in the source program includes one or more loop-carried dependency variables, each loop-carried dependency variable being a variable whose value substituted thereto in one iteration of the loop is referred to in another iteration that is executed after the one iteration; determining whether the loop is a parallelizable loop without synchronization when the loop is analyzed to include the one or more loop-carried dependency variables, the parallelizable loop without synchronization being a loop including one or more loop-carried dependency variables whose values are calculable in all iterations of the loop regardless of whether the loop is sequentially executed; and determining, in order to divide the loop into a plurality of subloops, start positions of the plurality of subloops when the loop is determined as the parallelizable loop without synchronization, generating, for each start position, an initial value calculating code for executing one or more statements in the loop at least once to calculate values of the one or more loop-carried dependency variables at the corresponding start position, dividing the loop into the plurality of subloops based on the start positions, and generating the object program such that each initial value calculating code is executed prior to the corresponding subloop.