]> AND Private Git Repository - mpi-energy.git/blobdiff - paper.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
some changes
[mpi-energy.git] / paper.tex
index 9ab93a9343fd828904d81f725644652f1471553e..781b3e2168cf63dc183b26cf950666b6f8c22c5d 100644 (file)
--- a/paper.tex
+++ b/paper.tex
@@ -19,7 +19,7 @@
 
 \begin{document}
 
 
 \begin{document}
 
-\title{Optimal Dynamic Frequency Scaling for Energy-Performance of Parallel MPI Programs}
+\title{The Simultaneous Dynamic Frequency Scaling for Energy-Performance of Parallel MPI Programs}
 
 \author{%
   \IEEEauthorblockN{%
 
 \author{%
   \IEEEauthorblockN{%
@@ -36,8 +36,7 @@
 
 \maketitle
 
 
 \maketitle
 
-\AG{``Optimal'' is a bit pretentious in the title.\\
-  Complete affiliation, add an email address, etc.}
+\AG{Complete affiliation, add an email address, etc.}
 
 \begin{abstract}
   The important technique for energy reduction of parallel systems is CPU
 
 \begin{abstract}
   The important technique for energy reduction of parallel systems is CPU
@@ -67,7 +66,7 @@ kW). This large increase in number of computing cores has led to large energy
 consumption by these architectures. Moreover, the price of energy is expected to
 continue its ascent according to the demand. For all these reasons energy
 reduction became an important topic in the high performance computing field. To
 consumption by these architectures. Moreover, the price of energy is expected to
 continue its ascent according to the demand. For all these reasons energy
 reduction became an important topic in the high performance computing field. To
-tackle this problem, many researchers used DVFS (Dynamic Voltage Frequency
+tackle this problem, many researchers used DVFS (Dynamic Voltage and Frequency
 Scaling) operations which reduce dynamically the frequency and voltage of cores
 and thus their energy consumption. However, this operation also degrades the
 performance of computation. Therefore researchers try to reduce the frequency to
 Scaling) operations which reduce dynamically the frequency and voltage of cores
 and thus their energy consumption. However, this operation also degrades the
 performance of computation. Therefore researchers try to reduce the frequency to
@@ -101,7 +100,7 @@ algorithm gives better energy-time trade off.
 
 This paper is organized as follows: Section~\ref{sec.relwork} presents the works
 from other authors.  Section~\ref{sec.exe} shows the execution of parallel
 
 This paper is organized as follows: Section~\ref{sec.relwork} presents the works
 from other authors.  Section~\ref{sec.exe} shows the execution of parallel
-tasks and sources of idle times.  It resumes the energy
+tasks and sources of idle times. Also, it resumes the energy
 model of homogeneous platform. Section~\ref{sec.mpip} evaluates the performance
 of MPI program.  Section~\ref{sec.compet} presents the energy-performance trade offs
 objective function. Section~\ref{sec.optim} demonstrates the proposed
 model of homogeneous platform. Section~\ref{sec.mpip} evaluates the performance
 of MPI program.  Section~\ref{sec.compet} presents the energy-performance trade offs
 objective function. Section~\ref{sec.optim} demonstrates the proposed
@@ -231,7 +230,7 @@ consumption~\cite{37}. The operational frequency \emph f depends linearly on the
 supply voltage $V$, i.e., $V = \beta \cdot f$ with some constant $\beta$. This
 equation is used to study the change of the dynamic voltage with respect to
 various frequency values in~\cite{3}. The reduction process of the frequency are
 supply voltage $V$, i.e., $V = \beta \cdot f$ with some constant $\beta$. This
 equation is used to study the change of the dynamic voltage with respect to
 various frequency values in~\cite{3}. The reduction process of the frequency are
-expressed by the scaling factor \emph S. The scale \emph S is the ratio between the
+expressed by the scaling factor \emph S. This scaling factor is the ratio between the
 maximum and the new frequency as in EQ~(\ref{eq:s}).
 \begin{equation}
   \label{eq:s}
 maximum and the new frequency as in EQ~(\ref{eq:s}).
 \begin{equation}
   \label{eq:s}
@@ -240,15 +239,14 @@ maximum and the new frequency as in EQ~(\ref{eq:s}).
 The value of the scale $S$ is greater than 1 when changing the frequency to any
 new frequency value~(\emph {P-state}) in governor, the CPU governor is an
 interface driver supplied by the operating system kernel (e.g. Linux) to
 The value of the scale $S$ is greater than 1 when changing the frequency to any
 new frequency value~(\emph {P-state}) in governor, the CPU governor is an
 interface driver supplied by the operating system kernel (e.g. Linux) to
-lowering core's frequency.  The scaling factor is equal to 1 when the frequency
-set is to the maximum frequency.  The energy consumption model for parallel
-homogeneous platform depends on the scaling factor \emph S. This factor reduces
-quadratically the dynamic power.  Also, this factor increases the static energy
-linearly because the execution time is increased~\cite{36}.  The energy model
+lowering core's frequency.  The scaling factor is equal to 1 when the new frequency is 
+set to the maximum frequency.   The energy model
 depending on the frequency scaling factor for homogeneous platform for any
 number of concurrent tasks was developed by Rauber and Rünger~\cite{3}. This
 model considers the two power metrics for measuring the energy of the parallel
 depending on the frequency scaling factor for homogeneous platform for any
 number of concurrent tasks was developed by Rauber and Rünger~\cite{3}. This
 model considers the two power metrics for measuring the energy of the parallel
-tasks as in EQ~(\ref{eq:energy}):
+tasks as in EQ~(\ref{eq:energy}). This factor reduces
+quadratically the dynamic power.  Also, it increases the static energy
+linearly because the execution time is increased~\cite{36}.
 \begin{equation}
   \label{eq:energy}
   E = P_\textit{dyn} \cdot S_1^{-2} \cdot
 \begin{equation}
   \label{eq:energy}
   E = P_\textit{dyn} \cdot S_1^{-2} \cdot
@@ -263,14 +261,14 @@ from the set of scales values $S_i$. Each of these scales are proportional to
 the time value $T_i$ depends on the new frequency value as in EQ~(\ref{eq:si}).
 \begin{equation}
   \label{eq:s1}
 the time value $T_i$ depends on the new frequency value as in EQ~(\ref{eq:si}).
 \begin{equation}
   \label{eq:s1}
-  S_1 = \max_{i=1,2,\dots,F} S_i
+  S_1 = \max_{i=1,2,\dots,N} S_i
 \end{equation}
 \begin{equation}
   \label{eq:si}
   S_i = S \cdot \frac{T_1}{T_i}
       = \frac{F_\textit{max}}{F_\textit{new}} \cdot \frac{T_1}{T_i}
 \end{equation}
 \end{equation}
 \begin{equation}
   \label{eq:si}
   S_i = S \cdot \frac{T_1}{T_i}
       = \frac{F_\textit{max}}{F_\textit{new}} \cdot \frac{T_1}{T_i}
 \end{equation}
-where $F$ is the number of available frequencies. In this paper we depend on
+where $N$ is the number of nodes. In this paper we depend on
 Rauber and Rünger energy model EQ~(\ref{eq:energy}) for two reasons: (1) this
 model is used for homogeneous platform that we work on in this paper, and (2) we
 compare our algorithm with Rauber and Rünger scaling model.  Rauber and Rünger
 Rauber and Rünger energy model EQ~(\ref{eq:energy}) for two reasons: (1) this
 model is used for homogeneous platform that we work on in this paper, and (2) we
 compare our algorithm with Rauber and Rünger scaling model.  Rauber and Rünger
@@ -280,14 +278,14 @@ minimized) and set it to zero to produce the scaling factor as in
 EQ~(\ref{eq:sopt}).
 \begin{equation}
   \label{eq:sopt}
 EQ~(\ref{eq:sopt}).
 \begin{equation}
   \label{eq:sopt}
-  S_\textit{opt} = \sqrt[3]{\frac{2}{n} \cdot \frac{P_\textit{dyn}}{P_\textit{static}} \cdot
+  S_\textit{opt} = \sqrt[3]{\frac{2}{N} \cdot \frac{P_\textit{dyn}}{P_\textit{static}} \cdot
     \left( 1 + \sum_{i=2}^{N} \frac{T_i^3}{T_1^3} \right) }
 \end{equation}
 
 \section{Performance Evaluation of MPI Programs}
 \label{sec.mpip}
 
     \left( 1 + \sum_{i=2}^{N} \frac{T_i^3}{T_1^3} \right) }
 \end{equation}
 
 \section{Performance Evaluation of MPI Programs}
 \label{sec.mpip}
 
-The performance (execution time) of  parallel MPI applications depend on
+The performance (execution time) of  parallel MPI applications depends on
 the time of the slowest task as in figure~(\ref{fig:homo}). Normally the
 execution time of the parallel programs are proportional to the operational
 frequency. Therefore, any DVFS operation for the energy reduction increases the
 the time of the slowest task as in figure~(\ref{fig:homo}). Normally the
 execution time of the parallel programs are proportional to the operational
 frequency. Therefore, any DVFS operation for the energy reduction increases the
@@ -310,7 +308,7 @@ these times are used to predict the execution time for any MPI program as a func
 the new scaling factor as in EQ~(\ref{eq:tnew}).
 \begin{equation}
   \label{eq:tnew}
 the new scaling factor as in EQ~(\ref{eq:tnew}).
 \begin{equation}
   \label{eq:tnew}
- \textit  T_\textit{new} = T_\textit{Max Comp Old} \cdot S + T_{\textit{Max Comm Old}}
+ \textit  T_\textit{New} = T_\textit{Max Comp Old} \cdot S + T_{\textit{Max Comm Old}}
 \end{equation}
 The above equation shows that the scaling factor \emph S has linear relation
 with the computation time without affecting the communication time. The
 \end{equation}
 The above equation shows that the scaling factor \emph S has linear relation
 with the computation time without affecting the communication time. The
@@ -339,9 +337,9 @@ without scaled frequency:
 \begin{multline}
   \label{eq:enorm}
   E_\textit{Norm} = \frac{ E_\textit{Reduced}}{E_\textit{Original}} \\
 \begin{multline}
   \label{eq:enorm}
   E_\textit{Norm} = \frac{ E_\textit{Reduced}}{E_\textit{Original}} \\
-        {} = \frac{P_\textit{dyn} \cdot S_i^{-2} \cdot
+        {} = \frac{P_\textit{dyn} \cdot S_1^{-2} \cdot
                \left( T_1 + \sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
                \left( T_1 + \sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
-               P_\textit{static} \cdot T_1 \cdot S_i \cdot N  }{
+               P_\textit{static} \cdot T_1 \cdot S_1 \cdot N  }{
               P_\textit{dyn} \cdot \left(T_1+\sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
               P_\textit{static} \cdot T_1 \cdot N }
 \end{multline}
               P_\textit{dyn} \cdot \left(T_1+\sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
               P_\textit{static} \cdot T_1 \cdot N }
 \end{multline}
@@ -362,7 +360,7 @@ simultaneously. But the main objective is to produce maximum energy reduction
 with minimum performance reduction. Many researchers used different strategies
 to solve this nonlinear problem for example see~\cite{19,42}, their methods add
 big overhead to the algorithm for selecting the suitable frequency. In this
 with minimum performance reduction. Many researchers used different strategies
 to solve this nonlinear problem for example see~\cite{19,42}, their methods add
 big overhead to the algorithm for selecting the suitable frequency. In this
-paper we are present a method to find the optimal scaling factor \emph S for
+paper we present a method to find the optimal scaling factor \emph S for
 optimize both energy and performance simultaneously without adding big
 overheads.  Our solution for this problem is to make the optimization process
 have the same direction. Therefore, we inverse the equation of normalize
 optimize both energy and performance simultaneously without adding big
 overheads.  Our solution for this problem is to make the optimization process
 have the same direction. Therefore, we inverse the equation of normalize
@@ -381,20 +379,20 @@ performance as follows:
   \subfloat[Real Relation.]{%
     \includegraphics[width=.4\textwidth]{file3.eps}\label{fig:r2}}
   \label{fig:rel}
   \subfloat[Real Relation.]{%
     \includegraphics[width=.4\textwidth]{file3.eps}\label{fig:r2}}
   \label{fig:rel}
-  \caption{The Energy and Performance Relation}
+  \caption{The Relation of Energy and Performance }
 \end{figure*}
 Then, we can modelize our objective function as finding the maximum distance
 between the energy curve EQ~(\ref{eq:enorm}) and the inverse of performance
 \end{figure*}
 Then, we can modelize our objective function as finding the maximum distance
 between the energy curve EQ~(\ref{eq:enorm}) and the inverse of performance
-curve EQ~(\ref{eq:pnorm_en}) over all available scaling factors. This represent
+curve EQ~(\ref{eq:pnorm_en}) over all available scaling factors $S_j$. This represent
 the minimum energy consumption with minimum execution time (better performance)
 in the same time, see figure~(\ref{fig:r1}). Then our objective function has the
 following form:
 \begin{equation}
   \label{eq:max}
 the minimum energy consumption with minimum execution time (better performance)
 in the same time, see figure~(\ref{fig:r1}). Then our objective function has the
 following form:
 \begin{equation}
   \label{eq:max}
-  \textit{MaxDist} = \max (\overbrace{P^{-1}_\textit{Norm}}^{\text{Maximize}} -
-                           \overbrace{E_\textit{Norm}}^{\text{Minimize}} )
+  S_\textit{optimal} = \max_{j=1,2,\dots,F} (\overbrace{P^{-1}_\textit{Norm}(S_j)}^{\text{Maximize}} -
+                        \overbrace{E_\textit{Norm}(S_j)}^{\text{Minimize}} )
 \end{equation}
 \end{equation}
-Then we can select the optimal scaling factor that satisfy the
+where F is the number of available frequencies. Then we can select the optimal scaling factor that satisfy the
 EQ~(\ref{eq:max}).  Our objective function can works with any energy model or
 static power values stored in a data file. Moreover, this function works in
 optimal way when the energy function has a convex form with frequency scaling
 EQ~(\ref{eq:max}).  Our objective function can works with any energy model or
 static power values stored in a data file. Moreover, this function works in
 optimal way when the energy function has a convex form with frequency scaling
@@ -408,7 +406,7 @@ reasons that mentioned before.
 In the previous section we described the objective function that satisfy our
 goal in discovering optimal scaling factor for both performance and energy at
 the same time. Therefore, we develop an energy to performance scaling algorithm
 In the previous section we described the objective function that satisfy our
 goal in discovering optimal scaling factor for both performance and energy at
 the same time. Therefore, we develop an energy to performance scaling algorithm
-($EPSA$). This algorithm is simple and has a direct way to calculate the optimal
+(EPSA). This algorithm is simple and has a direct way to calculate the optimal
 scaling factor for both energy and performance at the same time.
 \begin{algorithm}[tp]
   \caption{EPSA}
 scaling factor for both energy and performance at the same time.
 \begin{algorithm}[tp]
   \caption{EPSA}
@@ -419,7 +417,7 @@ scaling factor for both energy and performance at the same time.
     \State Set $P_{states}$ to the number of available frequencies.
     \State Set the variable $F_{new}$ to max. frequency,  $F_{new} = F_{max} $
     \State Set the variable $F_{diff}$ to the scale value between each two frequencies.
     \State Set $P_{states}$ to the number of available frequencies.
     \State Set the variable $F_{new}$ to max. frequency,  $F_{new} = F_{max} $
     \State Set the variable $F_{diff}$ to the scale value between each two frequencies.
-    \For {$i=1$   to   $P_{states} $}
+    \For {$J:=1$   to   $P_{states} $}
       \State - Calculate the new frequency as $F_{new}=F_{new} - F_{diff} $
       \State - Calculate the scale factor $S$ as in EQ~(\ref{eq:s}).
       \State - Calculate all available scales $S_i$  depend on $S$ as\par\hspace{1 pt} in EQ~(\ref{eq:si}).
       \State - Calculate the new frequency as $F_{new}=F_{new} - F_{diff} $
       \State - Calculate the scale factor $S$ as in EQ~(\ref{eq:s}).
       \State - Calculate all available scales $S_i$  depend on $S$ as\par\hspace{1 pt} in EQ~(\ref{eq:si}).
@@ -437,16 +435,12 @@ scaling factor for both energy and performance at the same time.
   \end{algorithmic}
 \end{algorithm}
 The proposed EPSA algorithm works online during the execution time of the MPI
   \end{algorithmic}
 \end{algorithm}
 The proposed EPSA algorithm works online during the execution time of the MPI
-program. It selects the optimal scaling factor by gathering the computation and communication times 
-from the program after one iteration.
- This algorithm has small execution time
+program. This algorithm has small execution time
 (between 0.00152 $ms$ for 4 nodes to 0.00665 $ms$ for 32 nodes). The algorithm complexity is O(F$\cdot$N), 
 (between 0.00152 $ms$ for 4 nodes to 0.00665 $ms$ for 32 nodes). The algorithm complexity is O(F$\cdot$N), 
-where F is the number of available frequencies and N is the number of computing nodes. The data required 
-by this algorithm is the computation time and the communication time for each task from the first iteration only
+where F is the number of available frequencies and N is the number of computing nodes. It selects the optimal scaling factor by gathering the computation and communication times 
+from the program after one iteration
 When these times are measured, the MPI program calls the EPSA algorithm to choose the new frequency using the
 When these times are measured, the MPI program calls the EPSA algorithm to choose the new frequency using the
-optimal scaling factor. Then the program changes the new frequency of the system. The algorithm is called just 
-one time during the execution of the program. The DVFS algorithm~(\ref{dvfs}) shows where and when the EPSA algorithm is called
-in the MPI program.
+optimal scaling factor. Then the program changes the new frequency of the system. The algorithm is called  just one time during the execution of the program. The DVFS algorithm~(\ref{dvfs}) shows where and when the EPSA algorithm is called in the MPI program.
 %\begin{minipage}{\textwidth}
 %\AG{Use the same format as for Algorithm~\ref{$EPSA$}}
 
 %\begin{minipage}{\textwidth}
 %\AG{Use the same format as for Algorithm~\ref{$EPSA$}}
 
@@ -454,14 +448,14 @@ in the MPI program.
   \caption{DVFS}
   \label{dvfs}
   \begin{algorithmic}[1]
   \caption{DVFS}
   \label{dvfs}
   \begin{algorithmic}[1]
- \For {$J:=1$ to $Some-Iterations \; $}
+ \For {$K:=1$ to $Some-Iterations \; $}
   \State -Computations Section.
    \State -Communications Section.
   \State -Computations Section.
    \State -Communications Section.
-   \If {$(J=1)$} 
+   \If {$(K=1)$} 
      \State -Gather all times of computation and\par\hspace{13 pt} communication from each node.
      \State -Call EPSA with these times.
      \State -Calculate the new frequency from optimal scale.
      \State -Gather all times of computation and\par\hspace{13 pt} communication from each node.
      \State -Call EPSA with these times.
      \State -Calculate the new frequency from optimal scale.
-     \State -Set the new frequency to the system.
+     \State -Change the new frequency of the system.
    \EndIf
 \EndFor
 \end{algorithmic}
    \EndIf
 \EndFor
 \end{algorithmic}
@@ -494,7 +488,7 @@ frequencies. We increased this range to verify the EPSA algorithm takes small ex
 time while it has a big number of available frequencies. The simulated network link is 1 GB Ethernet (TCP/IP). 
 The backbone of the cluster simulates a high performance switch.
 \begin{table}[htb]
 time while it has a big number of available frequencies. The simulated network link is 1 GB Ethernet (TCP/IP). 
 The backbone of the cluster simulates a high performance switch.
 \begin{table}[htb]
-  \caption{Platform File Parameters}
+  \caption{SimGrid Platform File Parameters}
   % title of Table
   \centering
   \begin{tabular}{|*{7}{l|}}
   % title of Table
   \centering
   \begin{tabular}{|*{7}{l|}}
@@ -530,7 +524,7 @@ This lead to 18 run states for each program. We use seven MPI programs of the
  NAS parallel benchmarks: CG, MG, EP, FT, BT, LU
 and SP. The average normalized errors between the predicted execution time and
 the real time (SimGrid time) for all programs is between 0.0032 to 0.0133. AS an
  NAS parallel benchmarks: CG, MG, EP, FT, BT, LU
 and SP. The average normalized errors between the predicted execution time and
 the real time (SimGrid time) for all programs is between 0.0032 to 0.0133. AS an
-example, we are present the execution times of the NAS benchmarks as in the
+example, we present the execution times of the NAS benchmarks as in the
 figure~(\ref{fig:pred}).
 
 \subsection{The EPSA Results}
 figure~(\ref{fig:pred}).
 
 \subsection{The EPSA Results}
@@ -569,7 +563,7 @@ same time over all available scales.
   \includegraphics[width=.33\textwidth]{lu.eps}\hfill%
   \includegraphics[width=.33\textwidth]{bt.eps}\hfill%
   \includegraphics[width=.33\textwidth]{ft.eps}
   \includegraphics[width=.33\textwidth]{lu.eps}\hfill%
   \includegraphics[width=.33\textwidth]{bt.eps}\hfill%
   \includegraphics[width=.33\textwidth]{ft.eps}
-  \caption{Optimal scaling factors for The NAS MPI Programs}
+  \caption{The Discovered  scaling factors for NAS MPI Programs}
   \label{fig:nas}
 \end{figure*}
 \begin{table}[htb]
   \label{fig:nas}
 \end{figure*}
 \begin{table}[htb]
@@ -737,7 +731,7 @@ NAS benchmarks programs for classes A,B and C.
 \end{table}
 As shown in these tables our scaling factor is not optimal for energy saving
 such as Rauber and Rünger scaling factor EQ~(\ref{eq:sopt}), but it is optimal for both
 \end{table}
 As shown in these tables our scaling factor is not optimal for energy saving
 such as Rauber and Rünger scaling factor EQ~(\ref{eq:sopt}), but it is optimal for both
-the energy and the performance simultaneously. Our $EPSA$ optimal scaling factors
+the energy and the performance simultaneously. Our EPSA optimal scaling factors
 has better simultaneous optimization for both the energy and the performance
 compared to Rauber and Rünger energy-performance method ($R_{E-P}$). Also, in
 ($R_{E-P}$) method when setting the frequency to maximum value for the
 has better simultaneous optimization for both the energy and the performance
 compared to Rauber and Rünger energy-performance method ($R_{E-P}$). Also, in
 ($R_{E-P}$) method when setting the frequency to maximum value for the
@@ -745,7 +739,14 @@ slower task lead to a small improvement of the performance. Also the results
 show that this method keep or improve energy saving. Because of the energy
 consumption decrease when the execution time decreased while the frequency value
 increased.
 show that this method keep or improve energy saving. Because of the energy
 consumption decrease when the execution time decreased while the frequency value
 increased.
-
+\begin{figure}[t]
+  \centering
+  \includegraphics[width=.33\textwidth]{compare_class_A.pdf}
+  \includegraphics[width=.33\textwidth]{compare_class_B.pdf}
+  \includegraphics[width=.33\textwidth]{compare_class_c.pdf}
+  \caption {Comparing Our EPSA with Rauber and Rünger Methods}
+  \label{fig:compare}
+\end{figure}
 Figure~(\ref{fig:compare}) shows the maximum distance between the energy saving
 percent and the performance degradation percent. Therefore, this means it is the
 same resultant of our objective function EQ~(\ref{eq:max}). Our algorithm always
 Figure~(\ref{fig:compare}) shows the maximum distance between the energy saving
 percent and the performance degradation percent. Therefore, this means it is the
 same resultant of our objective function EQ~(\ref{eq:max}). Our algorithm always
@@ -756,17 +757,10 @@ concatenating with less performance degradation and this the objective of this
 paper. While the negative trade offs refers to improving energy saving (or may
 be the performance) while degrading the performance (or may be the energy) more
 than the first.
 paper. While the negative trade offs refers to improving energy saving (or may
 be the performance) while degrading the performance (or may be the energy) more
 than the first.
-\begin{figure}[t]
-  \centering
-  \includegraphics[width=.33\textwidth]{compare_class_A.pdf}
-  \includegraphics[width=.33\textwidth]{compare_class_B.pdf}
-  \includegraphics[width=.33\textwidth]{compare_class_c.pdf}
-  \caption{Comparing Our EPSA with Rauber and Rünger Methods}
-  \label{fig:compare}
-\end{figure}
+
 \section{Conclusion}
 \label{sec.concl}
 \section{Conclusion}
 \label{sec.concl}
-In this paper we develop the simultaneous energy-performance algorithm. It works based on the trade off relation between the energy and performance. The results showed that when the scaling factor is big value refer to more energy saving. Also, when the scaling factor is smaller value, Then it has bigger impact on performance than energy. The algorithm optimizes the energy saving and performance in the same time to have positive trade off. The optimal trade off represents the maximum distance between the energy and the inversed performance curves. Also, the results explained when setting the slowest task to maximum frequency usually not have a big improvement on performance. In future, we will apply the EPSA algorithm on heterogeneous platform.
+In this paper we developed the simultaneous energy-performance algorithm. It works based on the trade off relation between the energy and performance. The results showed that when the scaling factor is big value refer to more energy saving. Also, when the scaling factor is smaller value, then it has bigger impact on performance than energy. The algorithm optimizes the energy saving and performance in the same time to have positive trade off. The optimal trade off represents the maximum distance between the energy and the inversed performance curves. Also, the results explained when setting the slowest task to maximum frequency usually not have a big improvement on performance. In future, we will apply the EPSA algorithm on heterogeneous platform.
 
 \section*{Acknowledgment}
 Computations have been performed on the supercomputer facilities of the
 
 \section*{Acknowledgment}
 Computations have been performed on the supercomputer facilities of the