Patent ID: 8589944

Claim:
A method for improving performance of computing a task comprised of a plurality of sub-tasks in a heterogeneous computing (HC) system comprising a plurality of machines, the method comprising: assigning each of the sub-tasks to one of the machines for processing; estimating a time period for each of the machines to process the assigned sub-tasks; identifying a first machine having a longest estimated time period to process the assigned sub-tasks; selecting at least one of the assigned sub-tasks for the first machine for re-assignment; identifying a second machine capable of processing the selected sub-task and previously assigned sub-tasks in less time than the longest estimated time period for the first machine; re-assigning the selected sub-task from the first machine to the second machine for processing; determining if the first machine still has the longest estimated time period after re-assigning the selected sub-task; identifying another machine as having a longest estimated time period when the first machine no longer has the longest estimated time period; and repetitively performing the steps of estimating the time period, identifying a first machine, selecting an assigned sub-task, identifying a second machine, and re-assigning the selected sub-task until no machine is identified that is capable of processing the selected sub-task and previously assigned sub-tasks in less time than the longest estimated time period for the first machine.