-In this section we proposed an heterogeneous scaling algorithm, (figure~\ref{HSA}), that selects the optimal set of scaling factors from each node.
-The algorithm is numerates the suitable range of available scaling factors for each node in the heterogeneous cluster, returns a set of optimal frequency scaling factors for each node. Using heterogeneous cluster is produces different workloads for each node. Therefore, the fastest nodes waiting at the barrier for the slowest nodes to finish there work as in figure (\ref{fig:heter}). Our algorithm takes into account these imbalanced workloads when is starts to search for selecting the best scaling factors. So, the algorithm is selecting the initial frequencies values for each node proportional to the times of computations that gathered from the first iteration. As an example in figure (\ref{fig:st_freq}), the algorithm don't test the first frequencies of the fastest nodes until it converge their frequencies to the frequency of the slowest node. If the algorithm is starts test changing the frequency of the slowest nodes from beginning, we are loosing performance and then not selecting the best tradeoff (the distance). This case will be similar to the homogeneous cluster when all nodes scales their frequencies together from the beginning. In this case there is a small distance between energy and performance curves, for example see the figure(\ref{fig:r1}). Then the algorithm searching for optimal frequency scaling factor from the selected frequencies until the last available ones.
+
+In this section we proposed an heterogeneous scaling algorithm,
+(figure~\ref{HSA}), that selects the optimal set of scaling factors from each
+node. The algorithm is numerates the suitable range of available scaling
+factors for each node in the heterogeneous cluster, returns a set of optimal
+frequency scaling factors for each node. Using heterogeneous cluster is produces
+different workloads for each node. Therefore, the fastest nodes waiting at the
+barrier for the slowest nodes to finish there work as in figure
+(\ref{fig:heter}). Our algorithm takes into account these imbalanced workloads
+when is starts to search for selecting the best scaling factors. So, the
+algorithm is selecting the initial frequencies values for each node proportional
+to the times of computations that gathered from the first iteration. As an
+example in figure (\ref{fig:st_freq}), the algorithm don't test the first
+frequencies of the fastest nodes until it converge their frequencies to the
+frequency of the slowest node. If the algorithm is starts test changing the
+frequency of the slowest nodes from beginning, we are loosing performance and
+then not selecting the best trade-off (the distance). This case will be similar
+to the homogeneous cluster when all nodes scales their frequencies together from
+the beginning. In this case there is a small distance between energy and
+performance curves, for example see the figure(\ref{fig:r1}). Then the
+algorithm searching for optimal frequency scaling factor from the selected
+frequencies until the last available ones.