Patent ID: 8108875

Claim:
A computer-implemented method for distributing a plurality of tasks over a plurality of processing nodes in a processor network, the method comprising steps of: calculating a task processor consumption value for the plurality of tasks; calculating a measured node processor consumption value for the plurality of nodes; calculating a target node processor consumption value for the plurality of nodes, the target node processor consumption value indicating optimal node processor consumption; calculating a load index value as a difference between the measured node processor consumption value for a node i and the target node processor consumption value for node i; and distributing the tasks among the nodes to balance a processor workload among the nodes according to the calculated load index value of each node, such that the calculated load index value of each node is zero; determining a processor type for each of the nodes when there is more than one processor type, wherein the processor type determines how the tasks are distributed, such that tasks specified for one type of processor are distributed to that type of processor exclusively; creating a multi-dimensional balancing matrix, each dimension of the matrix representing a node corresponding to a particular processor type and each cell representing tasks; sorting the calculated load index values in order from the highest load index value to the lowest load index value; populating the matrix with tasks according to the sorted load index values; re-arranging the tasks in the cells so as to represent a balance of the processor workload among the nodes, according to predetermined usage rules, such that the re-arranging of the tasks is asymmetric; removing each dimension of the matrix when its corresponding node task list is empty; and distributing the tasks to the processors according to the matrix representation.