Patent ID: 8739163
Filing Date: 2014-05-27
Classification: G06F

Abstract:
1. A multiprocessing system for controlling the interleaving of threads of a multithreaded application on a critical path of the multithreaded application, the system comprising: at least one processor and memory; multithreaded application code specifying a plurality of threads; a quantum builder component, executing on the at least one processor and using the memory, to divide the multithreaded application code into two or more quanta, each quantum constituting a predetermined number of operations to be executed by a thread in the plurality of threads; a deterministic execution component to specify an order in which to execute the two or more quanta by the plurality of threads each time the multithreaded application code executes with a particular input by automatically augmenting the multithreaded application code with synchronization code; an adaptive quantum builder component to monitor thread executions and determine for each of the two or more quanta whether to invoke the synchronization code prior to executing its predetermined number of operations; and a quantum completion component to monitor thread executions and, for each of the two or more quanta, if the synchronization code is not invoked by the adaptive quantum builder component, to invoke the synchronization code to suspend or to abort execution of the quantum in response to the quantum's thread executing its predetermined number of operations so that the order of execution of the two or more quanta follows the critical path of the multithreaded application and wherein, when a particular input is specified for multiple executions passes of the multithreaded application code, each execution pass produces the same output for the particular input.