1. A method, in a multiple processor system, for executing a message passing interface (MPI) job using a plurality of processors, comprising: receiving one or more MPI synchronization operation calls from one or more processors of the plurality of processors, wherein the MPI synchronization operation calls include an identifier of a MPI task performing the MPI synchronization operation call and a timestamp of the MPI synchronization operation call, the MPI task being part of an MPI job being executed on the plurality of processors; storing an entry in a history data structure identifying the one or more MPI synchronization operation calls and their associated MPI task identifier and timestamp; modifying an operation of the plurality of processors for executing the MPI job based on the history data structure by: determining if a wait period of a first processor in the plurality of processors meets or exceeds a threshold value; and in response to the wait period of the first processor meeting or exceeding the threshold value, modifying an operation of the plurality of processors to reduce the wait period of the first processor; determining a measure of the relative completion of computation phases of tasks of the MPI job on the plurality of processors based on the history data structure; and modifying the operation of the plurality of processors based on the relative completion of computation phases of tasks of the MPI job, wherein the measure of the relative completion of computation phases of tasks of the MPI job indicate a relative order in which the processors in the plurality of processors completed their respective computation phases of tasks.