when fast nodes have to wait, during synchronous communications, for the slower
nodes to finish their computations (see Figure~\ref{fig:heter}). Therefore, the
overall execution time of the program is the execution time of the slowest task
when fast nodes have to wait, during synchronous communications, for the slower
nodes to finish their computations (see Figure~\ref{fig:heter}). Therefore, the
overall execution time of the program is the execution time of the slowest task