Patent ID: 8881157

Claim:
A method to allocate a thread to a plurality of processor cores, the method comprising: allocating the thread to a first core of the plurality of processor cores; monitoring computing data related to the first core, wherein the computing data comprises a cycles per instruction rate based on a ratio of total number of clock cycles per instruction completed over a time interval; determining, based on the monitoring, that the thread is falling behind a thread completion target deadline by comparing the cycles per instruction rate to a target cycles per instruction rate; associating the thread with a phase of a plurality of phases of a thread execution; wherein each phase of the plurality of phases is associated with operating requirements of a specific task related to each phase; and wherein each phase is identified by a particular breakpoint in the thread execution or a particular point where the thread execution switches from a first task to a second task; identifying a current phase of the thread execution; allocating the thread to a second core of the plurality of the processor cores based, at least in part, on the determination that the thread is falling behind a thread completion deadline and based, at least in part, on the identification of the current phase of the thread execution.