A method for synchronizing a number of executed instructions of an application program performed by a plurality of processors (16, 18), comprising: instructing a first processor to execute instructions of the application program via a first plurality of iterations, wherein new iterations of the first plurality of iterations are started until a first predetermined time period has elapsed, wherein a number of instructions executed in each iteration of the first plurality of iterations is less than a number of instructions executed in a prior iteration of the first plurality of iterations; instructing a second processor to execute instructions of the application program via a second plurality of iterations, wherein new iterations of the second plurality of iterations are started until the first predetermined time period has elapsed, wherein a number of instructions executed in each iteration of the second plurality of iterations is less than a number of instructions executed in a prior iteration of the second plurality of iterations; determining a first total number of instructions of the application program executed by the first processor during the iterations of the first plurality of iterations which have been started during the first predetermined time period; determining a second total number of instructions of the application program executed by the second processor during the iterations of the second plurality of iterations which have been started during the first predetermined time period; and instructing the second processor to execute a first calculated number of instructions if the second total number of instructions is less than the first total number of instructions, wherein the first calculated number is calculated such that by the end of a second predetermined time period the first and second processor have completed the same number of instructions of the application. instructing a first processor to execute instructions of the application program via a first plurality of iterations, wherein new iterations of the first plurality of iterations are started until a first predetermined time period has elapsed, wherein a number of instructions executed in each iteration of the first plurality of iterations is less than a number of instructions executed in a prior iteration of the first plurality of iterations; instructing a second processor to execute instructions of the application program via a second plurality of iterations, wherein new iterations of the second plurality of iterations are started until the first predetermined time period has elapsed, wherein a number of instructions executed in each iteration of the second plurality of iterations is less than a number of instructions executed in a prior iteration of the second plurality of iterations; determining a first total number of instructions of the application program executed by the first processor during the iterations of the first plurality of iterations which have been started during the first predetermined time period; determining a second total number of instructions of the application program executed by the second processor during the iterations of the second plurality of iterations which have been started during the first predetermined time period; and instructing the second processor to execute a first calculated number of instructions if the second total number of instructions is less than the first total number of instructions, wherein the first calculated number is calculated such that by the end of a second predetermined time period the first and second processor have completed the same number of instructions of the application.