- The execution time of a parallel program is linearly proportional to the frequency scaling factor $S$.
- However, in most MPI applications the processes exchange data. During these communications the
- processors involved remain idle until the communications are finished. For that reason, any change in
- the frequency has no impact on the time of communication~\cite{17}. The communication time for a task is the summation of periods
- of time that begin with an MPI call for sending or receiving a message till the message is synchronously sent or received.
- Each node has different DVFS features such as frequency values and the number of available frequencies
- (Pstates) for each node. By contrast there are different frequency scaling factors for each node $S_1, S_2,..., S_N$. To be able to predict the execution time of MPI program, the communication time and the computation time for the slowest
- task must be measured before scaling. These times are used to predict the execution time for any MPI program running on heterogeneous cluster as a function
- of the new scaling factors as in EQ (\ref{eq:perf}). The model is computes the maximum production of computation time
- with scaling factor from each node added to the minimum communication time of the slowest node, it means only the
- communication time without slack times, because in MPI the slack times is measured with communication times.
+ The execution time of a compute bound sequential program is linearly proportional to the frequency scaling factor $S$.
+ On the other hand, message passing distributed applications consist of two parts: computation and communication. The execution time of the computation part is linearly proportional to the frequency scaling factor $S$ but the communication time is not affected by the scaling factor because the processors involved remain idle during the communications~\cite{17}. The communication time for a task is the summation of periods of time that begin with an MPI call for sending or receiving a message till the message is synchronously sent or received.
+
+Since in a heterogeneous platform, each node has different characteristics, especially different frequency gears, when applying DVFS operations on these nodes, they may get different scaling factors represented by a scaling vector: $(S_1, S_2,..., S_N)$ where $S_i$ is the scaling factor of processor $i$. To be able to predict the execution time of message passing synchronous iterative applications running over a heterogeneous platform, for different vectors of scaling factors, the communication time and the computation time for all the
+ tasks must be measured during the first iteration before applying any DVFS operation. Then the execution time for one iteration of the application with any vector of scaling factors can be predicted using EQ (\ref{eq:perf}).
+
+
+