Patent Document ID: 7941805
Application ID: 11504155
Patent Flag: 1

Claim One:
1. 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: determining a processor type for each of the processing nodes if 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; calculating a task processor consumption value for each of the plurality of tasks; calculating a measured node processor consumption value for the plurality of processing nodes; calculating a target node processor consumption value for the plurality of processing 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 the node i; calculating a load index standard deviation value as a difference of the actual processor workload distribution to a target processor workload distribution where the load index value of all affinity nodes is substantially zero, such that the load index standard deviation is reduced to substantially zero; creating a multi-dimensional balancing matrix, each dimension of the matrix representing a processing node corresponding to a particular processor type and each cell representing tasks; sorting the calculated load index values in order from a highest load index value to a lowest load index value; populating the balancing matrix with the plurality of tasks according to the sorted load index values; re-arranging the plurality of tasks in the cells so as to represent a balance of the processor workload among the processing nodes; removing each dimension of the matrix if its corresponding node task list is empty; distributing the plurality of tasks to the plurality of processors according to the matrix representation; extending the multi-dimensional balancing, such that each dimension can represent nodes corresponding to multiple processor types; re-arranging the tasks in the cells, according to predetermined usage rules, such that the re-arranging of the tasks is asymmetric; calculating a threshold value below which the system is considered to be satisfactorily balanced, wherein a task will be redistributed only if the redistribution reduces the load index deviation by more than the threshold value and wherein the threshold value varies according to the processor workload; distributing the tasks among the processing nodes to balance the processor workload among the processing nodes according to the calculated load index value of each node, such that the calculated load index value of each node is substantially zero, and such that each of the plurality of tasks is distributed only once; keeping track of the plurality of tasks with a processor consumption of address spaces during each balancer run, wherein a plurality of a largest processor consuming tasks are more closely monitored for better processor consumption details when the load index deviation fails to reach below the threshold value.