Patent ID: 8656405

Claim:
A method for scheduling tasks across multiple processor units of differing capacity in a heterogeneous multiprocessing environment, the method comprising: initially assigning a task to a first processor unit within the heterogeneous multiprocessing environment; monitoring tasks running on processor units within the heterogeneous multiprocessing environment for a predetermined period of time to record usage measurements, wherein the heterogeneous multiprocessing environment comprises a first group of processor units having a first processing capacity, a second group of processor units having a second processing capacity, and a third group of processor units having a third processing capacity, wherein the second processing capacity is greater than the first processing capacity, wherein the third processing capacity is greater than the second processing capacity, and wherein the first group of processor units includes the first processor unit; based on the usage measurements, determining whether a second processor unit within the second group of processor units has extra cycles; selecting a heavy task assigned to the first processor unit based on usage measurements recorded at the first processor unit and pulling the heavy task by the second processor unit responsive to determining the second processor unit has extra cycles; and selecting a light task assigned to a third processor unit based on usage measurements recorded at the third processor unit and pushing the light task by the third processor unit to a target processor unit responsive to determining the third processor unit is overloaded.