Patent Document ID: 20110314461
Application ID: 12817466
Patent Flag: 0

Claim One:
1. At a computer system including one or more processors and system memory, a method for implementing iterations of a serial loop in parallel, the method comprising: an act of determining that a specified number of loop iterations of a loop are to be executed, one or more iterations in the specified number of loop iterations assigning one of a plurality of different values to a variable used in the serial loop; an act of providing a temporary copy of the variable to each loop iteration; an act of concurrently executing one or more different pluralities of loop iterations from among the specified number of loop iterations to determine if a and what value is assigned to the variable for each different loop iterations, including for at least one loop iteration: an act of assigning one of the plurality of different values to the temporary copy of the variable provided for the loop iteration; and an act of indicating that that temporary copy of the variable provided for the loop iteration was assigned a value; an act of ordering the temporary copies of the variable provided for the loop iterations based on when each loop iteration would have been executed serially during serial execution of the loop; an act of merging the temporary copies of the variable according to a reduction operator to identify the loop iteration closest to the last loop iteration that assigned one of the different values to its temporary copy of the variable; and an act of assigning the value that the loop iteration closest to the last loop iteration assigned to its temporary copy of the variable as the value for the variable.