Patent ID: 8234652

Claim:
A method, in a multiple processor system, for balancing a Message Passing Interface (MPI) workload across a plurality of processors, comprising: receiving one or more MPI synchronization operation calls from one or more processors of the plurality of processors; identifying a first processor, in the plurality of processors, having a fastest time of completion of a computation phase of an associated MPI task, during a computation cycle, based on the received one or more MPI synchronization operation calls, wherein the computation phase of the first associated MPI task involves executing the MPI task on a first data set; performing a first setup operation in the first processor for preparing to receive a second data set that is larger than the first data set in response to identifying the first processor as having a fastest time of completion of the computation phase, wherein the first setup operation modifies an allocation of resources in the multiple processor system for use by the first processor in receiving the second data set; identifying a second processor, in the plurality of processors, having a slowest time of completion of a computation phase of a second associated MPI task, during the computation cycle, based on the received one or more MPI synchronization operation calls, wherein the computation phase of the second associated MPI task involves executing the MPI task on a third data set; and performing a second setup operation in the second processor for preparing to receive a fourth data set that is smaller than the third data set in response to identifying the second processor as having a slowest time of completion of the computation phase, wherein the second setup operation modifies an allocation of resources in the multiple processor system for use by the second processor in receiving the fourth data set.