Patent ID: 8689221
Filing Date: 2014-04-01
Classification: G06F

Abstract:
1. A non-transitory computer-readable storage medium encoded with instructions that when executed comprise: receiving a plurality of asynchronous conflict events during a previous rollback period, wherein the plurality of asynchronous conflict events represent conflicts encountered by speculative execution of a first plurality of work units; determining, during a current rollback period, a first work unit whose speculative execution raised one of the plurality of asynchronous conflict events, wherein the first work unit is one of the first plurality of work units, and wherein the first work unit is older than all other of the first plurality of work units; determining a second plurality of work units whose ages are equal to or older than the first work unit, wherein each of the second plurality of work units are assigned to respective speculatively executing threads; initiating, during the current rollback period, rollbacks of the second plurality of work units whose ages are equal to or older than the first work unit that is older than all of the other of the first plurality of work units that encountered conflicts represented by the plurality of asynchronous conflict events during the previous rollback period, wherein the rollbacks are performed by the respective speculatively executing threads; and wherein during the previous rollback period a previous invocation of a kernel is executed that initiates a previous round of rollback operations.