Patent ID: 8112751

Claim:
In a computer system comprising a plurality of central processing units (CPUs) and wherein one or more applications are configured to request execution of one or more tasks maintained in one or more libraries, a method of using a plurality of worker threads that are assigned to execute on different CPUs to execute at least some of the one or more tasks in parallel comprising the acts of: receiving from one or more applications a request to execute a plurality of tasks; assigning to each CPU at least one worker thread for processing, each worker thread having a queue for tracking execution and completion of an assigned task; assigning one or more tasks from one or more applications to each of the at least one worker thread assigned to each CPU, wherein at least one of the one or more assigned tasks is replicable; if a worker thread has a replicable task originally assigned to its queue, designating that worker thread as an original worker thread for the replicable task; and each worker thread using its queue to determine when its assigned tasks are completed, and when a first worker thread has completed its assigned tasks, the first worker thread copying an uncompleted replicable task from an original worker thread and commencing processing of uncompleted portions of the copied replicable task, and then when a second worker thread completes its assigned tasks, the second worker thread also copying the same replicable task from the original worker thread and processing other uncompleted portions of the copied replicable task not yet processed by the first worker thread.