]> AND Private Git Repository - mpi-energy2.git/blob - mpi-energy2-extension/Heter_paper.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
adding some figures
[mpi-energy2.git] / mpi-energy2-extension / Heter_paper.tex
1 \documentclass[conference]{IEEEtran}
2
3 \usepackage[T1]{fontenc}
4 \usepackage[utf8]{inputenc}
5 \usepackage[english]{babel}
6 \usepackage{algpseudocode}
7 \usepackage{graphicx}
8 \usepackage{algorithm}
9 \usepackage{subfig}
10 \usepackage{amsmath}
11 \usepackage{url}
12 \DeclareUrlCommand\email{\urlstyle{same}}
13
14 \usepackage[autolanguage,np]{numprint}
15 \AtBeginDocument{%
16   \renewcommand*\npunitcommand[1]{\text{#1}}
17   \npthousandthpartsep{}}
18
19 \usepackage{xspace}
20 \usepackage[textsize=footnotesize]{todonotes}
21 \newcommand{\AG}[2][inline]{%
22   \todo[color=green!50,#1]{\sffamily\textbf{AG:} #2}\xspace}
23 \newcommand{\JC}[2][inline]{%
24   \todo[color=red!10,#1]{\sffamily\textbf{JC:} #2}\xspace}
25
26 \newcommand{\Xsub}[2]{{\ensuremath{#1_\mathit{#2}}}}
27
28 %% used to put some subscripts lower, and make them more legible
29 \newcommand{\fxheight}[1]{\ifx#1\relax\relax\else\rule{0pt}{1.52ex}#1\fi}
30
31 \newcommand{\CL}{\Xsub{C}{L}}
32 \newcommand{\Dist}{\mathit{Dist}}
33 \newcommand{\EdNew}{\Xsub{E}{dNew}}
34 \newcommand{\Eind}{\Xsub{E}{ind}}
35 \newcommand{\Enorm}{\Xsub{E}{Norm}}
36 \newcommand{\Eoriginal}{\Xsub{E}{Original}}
37 \newcommand{\Ereduced}{\Xsub{E}{Reduced}}
38 \newcommand{\Es}{\Xsub{E}{S}}
39 \newcommand{\Fdiff}[1][]{\Xsub{F}{diff}_{\!#1}}
40 \newcommand{\Fmax}[1][]{\Xsub{F}{max}_{\fxheight{#1}}}
41 \newcommand{\Fnew}{\Xsub{F}{new}}
42 \newcommand{\Ileak}{\Xsub{I}{leak}}
43 \newcommand{\Kdesign}{\Xsub{K}{design}}
44 \newcommand{\MaxDist}{\mathit{Max}\Dist}
45 \newcommand{\MinTcm}{\mathit{Min}\Tcm}
46 \newcommand{\Ntrans}{\Xsub{N}{trans}}
47 \newcommand{\Pd}[1][]{\Xsub{P}{d}_{\fxheight{#1}}}
48 \newcommand{\PdNew}{\Xsub{P}{dNew}}
49 \newcommand{\PdOld}{\Xsub{P}{dOld}}
50 \newcommand{\Pnorm}{\Xsub{P}{Norm}}
51 \newcommand{\Ps}[1][]{\Xsub{P}{s}_{\fxheight{#1}}}
52 \newcommand{\Scp}[1][]{\Xsub{S}{cp}_{#1}}
53 \newcommand{\Sopt}[1][]{\Xsub{S}{opt}_{#1}}
54 \newcommand{\Tcm}[1][]{\Xsub{T}{cm}_{\fxheight{#1}}}
55 \newcommand{\Tcp}[1][]{\Xsub{T}{cp}_{#1}}
56 \newcommand{\Ppeak}[1][]{\Xsub{P}{peak}_{#1}}
57 \newcommand{\Pidle}[1][]{\Xsub{P}{idle}_{\fxheight{#1}}}
58 \newcommand{\TcpOld}[1][]{\Xsub{T}{cpOld}_{#1}}
59 \newcommand{\Tnew}{\Xsub{T}{New}}
60 \newcommand{\Told}{\Xsub{T}{Old}}
61
62 \begin{document}
63
64 \title{Energy Consumption Reduction with DVFS for \\
65   Message Passing Iterative Applications on \\
66   Heterogeneous Architectures}
67
68 \author{%
69   \IEEEauthorblockN{%
70     Jean-Claude Charr,
71     Raphaël Couturier,
72     Ahmed Fanfakh and
73     Arnaud Giersch
74   }
75   \IEEEauthorblockA{%
76     FEMTO-ST Institute, University of Franche-Comté\\
77     IUT de Belfort-Montbéliard,
78     19 avenue du Maréchal Juin, BP 527, 90016 Belfort cedex, France\\
79     % Telephone: \mbox{+33 3 84 58 77 86}, % Raphaël
80     % Fax: \mbox{+33 3 84 58 77 81}\\      % Dept Info
81     Email: \email{{jean-claude.charr,raphael.couturier,ahmed.fanfakh_badri_muslim,arnaud.giersch}@univ-fcomte.fr}
82    }
83   }
84
85 \maketitle
86
87 \begin{abstract}
88   
89
90 \end{abstract}
91
92 \section{Introduction}
93 \label{sec.intro}
94
95
96
97 \section{Related works}
98 \label{sec.relwork}
99
100
101 \section{The performance and energy consumption measurements on heterogeneous architecture}
102 \label{sec.exe}
103
104 \subsection{The execution time of message passing distributed iterative
105   applications on a heterogeneous platform}
106
107 In this paper, we are interested in reducing the energy consumption of message
108 passing distributed iterative synchronous applications running over
109 heterogeneous grid platforms. A heterogeneous grid platform is defined as a collection of
110 heterogeneous computing clusters interconnected via a long distance network (the internet network). Each computing cluster in the grid composed from homogeneous nodes, where are connected together via high speed homogeneous network. Therefore, each cluster has different characteristics such as computing power (FLOPS), energy consumption, CPU's frequency range, network bandwidth and latency.
111
112 \begin{figure}[!t]
113   \centering
114   \includegraphics[scale=0.6]{fig/commtasks}
115   \caption{Parallel tasks on a heterogeneous platform}
116   \label{fig:heter}
117 \end{figure}
118
119 The overall execution time of a distributed iterative synchronous application 
120 over a heterogeneous grid consists of the sum of the computation time and 
121 the communication time for every iteration on a node. However, due to the
122 heterogeneous computation power of the computing clusters, slack times may occur
123 when fast nodes have to wait, during synchronous communications, for the slower
124 nodes to finish their computations (see Figure~\ref{fig:heter}).  Therefore, the
125 overall execution time of the program is the execution time of the slowest task 
126 which has the highest computation time and no slack time.
127
128 Dynamic Voltage and Frequency Scaling (DVFS) is a process, implemented in
129 modern processors, that reduces the energy consumption of a CPU by scaling
130 down its voltage and frequency.  Since DVFS lowers the frequency of a CPU
131 and consequently its computing power, the execution time of a program running
132 over that scaled down processor may increase, especially if the program is
133 compute bound.  The frequency reduction process can be  expressed by the scaling
134 factor S which is the ratio between  the maximum and the new frequency of a CPU
135 as in (\ref{eq:s}).
136 \begin{equation}
137   \label{eq:s}
138   S = \frac{\Fmax}{\Fnew}
139 \end{equation}
140 The execution time of a compute bound sequential program is linearly
141 proportional to the frequency scaling factor $S$.  On the other hand, message
142 passing distributed applications consist of two parts: computation and
143 communication.  The execution time of the computation part is linearly
144 proportional to the frequency scaling factor $S$ but the communication time is
145 not affected by the scaling factor because the processors involved remain idle
146 during the communications~\cite{Freeh_Exploring.the.Energy.Time.Tradeoff}.  The
147 communication time for a task is the summation of periods of time that begin
148 with an MPI call for sending or receiving a message until the message is
149 synchronously sent or received.
150
151 Since in a heterogeneous grid each cluster has different characteristics,
152 especially different frequency gears, when applying DVFS operations on the nodes 
153 of these clusters, they may get different scaling factors represented by a scaling vector:
154 $(S_{11}, S_{12},\dots, S_{NM})$ where $S_{ij}$ is the scaling factor of processor $j$ in cluster $i$ . To
155 be able to predict the execution time of message passing synchronous iterative
156 applications running over a heterogeneous grid, for different vectors of
157 scaling factors, the communication time and the computation time for all the
158 tasks must be measured during the first iteration before applying any DVFS
159 operation. Then the execution time for one iteration of the application with any
160 vector of scaling factors can be predicted using (\ref{eq:perf}).
161 \begin{equation}
162   \label{eq:perf}
163   \Tnew = \mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}({\TcpOld[ij]} \cdot S_{ij}) 
164   +\mathop{\min_{j=1,\dots,M}}  (\Tcm[hj])
165 \end{equation}
166
167 where $N$ is the number of the clusters in the grid, $M$ is the number of the nodes in
168 each cluster, $\TcpOld[ij]$ is the computation time of processor $j$ in the cluster $i$ 
169 and $\Tcm[hj]$ is the communication time of processor $j$ in the cluster $h$ during the 
170 first  iteration. The model computes the maximum computation time with scaling factor 
171 from each node added to the communication time of the slowest node in the slowest cluster $h$.
172 It means only the communication time without any slack time is taken into account.  
173 Therefore, the execution time of the iterative application is equal to
174 the execution time of one iteration as in (\ref{eq:perf}) multiplied by the
175 number of iterations of that application.
176
177 This prediction model is developed from the model to predict the execution time
178 of message passing distributed applications for homogeneous and heterogeneous clusters
179 ~\cite{Our_first_paper,pdsec2015}.  The execution time prediction model is
180 used in the method to optimize both the energy consumption and the performance
181 of iterative methods, which is presented in the following sections.
182
183 \subsection{Energy model for heterogeneous platform}
184
185 Many researchers~\cite{Malkowski_energy.efficient.high.performance.computing,
186   Rauber_Analytical.Modeling.for.Energy,Zhuo_Energy.efficient.Dynamic.Task.Scheduling,
187   Rizvandi_Some.Observations.on.Optimal.Frequency} divide the power consumed by
188 a processor into two power metrics: the static and the dynamic power.  While the
189 first one is consumed as long as the computing unit is turned on, the latter is
190 only consumed during computation times.  The dynamic power $\Pd$ is related to
191 the switching activity $\alpha$, load capacitance $\CL$, the supply voltage $V$
192 and operational frequency $F$, as shown in (\ref{eq:pd}).
193 \begin{equation}
194   \label{eq:pd}
195   \Pd = \alpha \cdot \CL \cdot V^2 \cdot F
196 \end{equation}
197 The static power $\Ps$ captures the leakage power as follows:
198 \begin{equation}
199   \label{eq:ps}
200    \Ps  = V \cdot \Ntrans \cdot \Kdesign \cdot \Ileak
201 \end{equation}
202 where V is the supply voltage, $\Ntrans$ is the number of transistors,
203 $\Kdesign$ is a design dependent parameter and $\Ileak$ is a
204 technology dependent parameter.  The energy consumed by an individual processor
205 to execute a given program can be computed as:
206 \begin{equation}
207   \label{eq:eind}
208   \Eind =  \Pd \cdot \Tcp + \Ps \cdot T
209 \end{equation}
210 where $T$ is the execution time of the program, $\Tcp$ is the computation
211 time and $\Tcp \le T$.  $\Tcp$ may be equal to $T$ if there is no
212 communication and no slack time.
213
214 The main objective of DVFS operation is to reduce the overall energy
215 consumption~\cite{Le_DVFS.Laws.of.Diminishing.Returns}.  The operational
216 frequency $F$ depends linearly on the supply voltage $V$, i.e., $V = \beta \cdot
217 F$ with some constant $\beta$.~This equation is used to study the change of the
218 dynamic voltage with respect to various frequency values
219 in~\cite{Rauber_Analytical.Modeling.for.Energy}.  The reduction process of the
220 frequency can be expressed by the scaling factor $S$ which is the ratio between
221 the maximum and the new frequency as in (\ref{eq:s}).  The CPU governors are
222 power schemes supplied by the operating system's kernel to lower a core's
223 frequency. The new frequency $\Fnew$ from (\ref{eq:s}) can be calculated as
224 follows:
225 \begin{equation}
226   \label{eq:fnew}
227    \Fnew = S^{-1} \cdot \Fmax
228 \end{equation}
229 Replacing $\Fnew$ in (\ref{eq:pd}) as in (\ref{eq:fnew}) gives the following
230 equation for dynamic power consumption:
231 \begin{multline}
232   \label{eq:pdnew}
233    \PdNew = \alpha \cdot \CL \cdot V^2 \cdot \Fnew = \alpha \cdot \CL \cdot \beta^2 \cdot \Fnew^3 \\
234    {} = \alpha \cdot \CL \cdot V^2 \cdot \Fmax \cdot S^{-3} = \PdOld \cdot S^{-3}
235 \end{multline}
236 where $\PdNew$  and $\PdOld$ are the  dynamic power consumed with the
237 new frequency and the maximum frequency respectively.
238
239 According to (\ref{eq:pdnew}) the dynamic power is reduced by a factor of
240 $S^{-3}$ when reducing the frequency by a factor of
241 $S$~\cite{Rauber_Analytical.Modeling.for.Energy}. Since the FLOPS of a CPU is
242 proportional to the frequency of a CPU, the computation time is increased
243 proportionally to $S$.  The new dynamic energy is the dynamic power multiplied
244 by the new time of computation and is given by the following equation:
245 \begin{equation}
246   \label{eq:Edyn}
247    \EdNew = \PdOld \cdot S^{-3} \cdot (\Tcp \cdot S)= S^{-2}\cdot \PdOld \cdot  \Tcp
248 \end{equation}
249 The static power is related to the power leakage of the CPU and is consumed
250 during computation and even when idle. As
251 in~\cite{Rauber_Analytical.Modeling.for.Energy,Zhuo_Energy.efficient.Dynamic.Task.Scheduling},
252 the static power of a processor is considered as constant during idle and
253 computation periods, and for all its available frequencies.  The static energy
254 is the static power multiplied by the execution time of the program.  According
255 to the execution time model in (\ref{eq:perf}), the execution time of the
256 program is the sum of the computation and the communication times. The
257 computation time is linearly related to the frequency scaling factor, while this
258 scaling factor does not affect the communication time.  The static energy of a
259 processor after scaling its frequency is computed as follows:
260 \begin{equation}
261   \label{eq:Estatic}
262   \Es = \Ps \cdot (\Tcp \cdot S  + \Tcm)
263 \end{equation}
264
265 In the considered heterogeneous grid platform, each node $j$ in cluster $i$ may have
266 different dynamic and static powers from the nodes of the other clusters, 
267 noted as $\Pd[ij]$ and $\Ps[ij]$ respectively.  Therefore, even if the distributed 
268 message passing iterative application is load balanced, the computation time of each CPU $j$ 
269 in cluster $i$ noted $\Tcp[ij]$ may be different and different frequency scaling factors may be
270 computed in order to decrease the overall energy consumption of the application
271 and reduce slack times.  The communication time of a processor $j$ in cluster $i$ is noted as
272 $\Tcm[ij]$ and could contain slack times when communicating with slower nodes,
273 see Figure~\ref{fig:heter}.  Therefore, all nodes do not have equal
274 communication times. While the dynamic energy is computed according to the
275 frequency scaling factor and the dynamic power of each node as in
276 (\ref{eq:Edyn}), the static energy is computed as the sum of the execution time
277 of one iteration multiplied by the static power of each processor.  The overall
278 energy consumption of a message passing distributed application executed over a
279 heterogeneous grid platform during one iteration is the summation of all dynamic and
280 static energies for $M$ processors in $N$ clusters.  It is computed as follows:
281 \begin{multline}
282   \label{eq:energy}
283  E = \sum_{i=1}^{N} \sum_{i=1}^{M} {(S_{ij}^{-2} \cdot \Pd[ij] \cdot  \Tcp[ij])} +  
284  \sum_{i=1}^{N} \sum_{j=1}^{M} (\Ps[ij] \cdot {} \\
285   (\mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}({\Tcp[ij]} \cdot S_{ij}) 
286   +\mathop{\min_{j=1,\dots M}} (\Tcm[hj]) ))
287 \end{multline}
288
289 Reducing the frequencies of the processors according to the vector of scaling
290 factors $(S_{11}, S_{12},\dots, S_{NM})$ may degrade the performance of the application
291 and thus, increase the static energy because the execution time is
292 increased~\cite{Kim_Leakage.Current.Moore.Law}. The overall energy consumption
293 for the iterative application can be measured by measuring the energy
294 consumption for one iteration as in (\ref{eq:energy}) multiplied by the number
295 of iterations of that application.
296
297 \section{Optimization of both energy consumption and performance}
298 \label{sec.compet}
299
300 Using the lowest frequency for each processor does not necessarily give the most
301 energy efficient execution of an application. Indeed, even though the dynamic
302 power is reduced while scaling down the frequency of a processor, its
303 computation power is proportionally decreased. Hence, the execution time might
304 be drastically increased and during that time, dynamic and static powers are
305 being consumed.  Therefore, it might cancel any gains achieved by scaling down
306 the frequency of all nodes to the minimum and the overall energy consumption of
307 the application might not be the optimal one.  It is not trivial to select the
308 appropriate frequency scaling factor for each processor while considering the
309 characteristics of each processor (computation power, range of frequencies,
310 dynamic and static powers) and the task executed (computation/communication
311 ratio). The aim being to reduce the overall energy consumption and to avoid
312 increasing significantly the execution time.  In our previous
313 work~\cite{Our_first_paper,pdsec2015}, we proposed a method that selects the optimal
314 frequency scaling factor for a homogeneous and heterogeneous clusters executing a message passing
315 iterative synchronous application while giving the best trade-off between the
316 energy consumption and the performance for such applications.  In this work we
317 are interested in heterogeneous grid as described above.  Due to the
318 heterogeneity of the processors, a vector of scaling factors should be selected
319 and it must give the best trade-off between energy consumption and performance.
320
321 The relation between the energy consumption and the execution time for an
322 application is complex and nonlinear, Thus, unlike the relation between the
323 execution time and the scaling factor, the relation between the energy and the
324 frequency scaling factors is nonlinear, for more details refer
325 to~\cite{Freeh_Exploring.the.Energy.Time.Tradeoff}.  Moreover, these relations
326 are not measured using the same metric.  To solve this problem, the execution
327 time is normalized by computing the ratio between the new execution time (after
328 scaling down the frequencies of some processors) and the initial one (with
329 maximum frequency for all nodes) as follows:
330 \begin{equation}
331   \label{eq:pnorm}
332   \Pnorm = \frac{\Tnew}{\Told}                 
333 \end{equation}
334
335
336 Where $Tnew$ is computed as in (\ref{eq:perf}) and $Told$ is computed as in (\ref{eq:told})
337 \begin{equation}
338   \label{eq:told}
339    \Told = \mathop{\max_{i=1,2,\dots,N}}_{j=1,2,\dots,M} (\Tcp[ij]+\Tcm[ij])             
340 \end{equation}
341 In the same way, the energy is normalized by computing the ratio between the
342 consumed energy while scaling down the frequency and the consumed energy with
343 maximum frequency for all  nodes:
344 \begin{equation}
345   \label{eq:enorm}
346   \Enorm = \frac{\Ereduced}{\Eoriginal} 
347 \end{equation}
348
349 Where $\Ereduced$  is computed using (\ref{eq:energy}) and $\Eoriginal$ is 
350 computed as in ().
351
352 \begin{equation}
353   \label{eq:eorginal}
354     \Eoriginal = \sum_{i=1}^{N} \sum_{j=1}^{M} ( \Pd[ij] \cdot  \Tcp[ij])  + 
355      \mathop{\sum_{i=1}^{N}} \sum_{j=1}^{M} (\Ps[ij] \cdot \Told)       
356 \end{equation}
357
358 While the main goal is to optimize the energy and execution time at the same
359 time, the normalized energy and execution time curves do not evolve (increase/decrease) in the same way. 
360 According to the equations~(\ref{eq:pnorm}) and (\ref{eq:enorm}), the
361 vector of frequency scaling factors $S_1,S_2,\dots,S_N$ reduce both the energy
362 and the execution time simultaneously.  But the main objective is to produce
363 maximum energy reduction with minimum execution time reduction.
364
365 This problem can be solved by making the optimization process for energy and
366 execution time follow the same evolution according to the vector of scaling factors
367 $(S_{11}, S_{12},\dots, S_{NM})$. Therefore, the equation of the
368 normalized execution time is inverted which gives the normalized performance
369 equation, as follows:
370 \begin{equation}
371   \label{eq:pnorm_inv}
372   \Pnorm = \frac{\Told}{\Tnew}          
373 \end{equation}
374
375 \begin{figure}[!t]
376   \centering
377   \subfloat[Homogeneous cluster]{%
378     \includegraphics[width=.33\textwidth]{fig/homo}\label{fig:r1}}%
379
380   \subfloat[Heterogeneous grid]{%
381     \includegraphics[width=.33\textwidth]{fig/heter}\label{fig:r2}}
382   \label{fig:rel}
383   \caption{The energy and performance relation}
384 \end{figure}
385
386 Then, the objective function can be modeled in order to find the maximum
387 distance between the energy curve (\ref{eq:enorm}) and the performance curve
388 (\ref{eq:pnorm_inv}) over all available sets of scaling factors.  This
389 represents the minimum energy consumption with minimum execution time (maximum
390 performance) at the same time, see Figure~\ref{fig:r1} or
391 Figure~\ref{fig:r2}. Then the objective function has the following form:
392 \begin{equation}
393   \label{eq:max}
394   \MaxDist =
395 \mathop{  \mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}}_{k=1,\dots,F}
396       (\overbrace{\Pnorm(S_{ijk})}^{\text{Maximize}} -
397        \overbrace{\Enorm(S_{ijk})}^{\text{Minimize}} )
398 \end{equation}
399 where $N$ is the number of clusters, $M$ is the number of nodes in each cluster and
400 $F$ is the number of available frequencies for each node.  Then, the optimal set 
401 of scaling factors that satisfies (\ref{eq:max}) can be selected.  
402 The objective function can work with any energy model or any power 
403 values for each node (static and dynamic powers). However, the most important 
404 energy reduction gain can be achieved when the energy curve has a convex form as shown 
405 in~\cite{Zhuo_Energy.efficient.Dynamic.Task.Scheduling,Rauber_Analytical.Modeling.for.Energy,Hao_Learning.based.DVFS}.
406
407 \section{The scaling factors selection algorithm for heterogeneous grid platforms }
408 \label{sec.optim}
409
410 \begin{algorithm}
411   \begin{algorithmic}[1]
412     % \footnotesize
413     \Require ~
414     \begin{description}
415     \item [{$N$}] number of clusters in the grid.
416     \item [{$M$}] number of nodes in each cluster.
417     \item[{$\Tcp[ij]$}] array of all computation times for all nodes during one iteration and with the highest frequency.
418     \item[{$\Tcm[ij]$}] array of all communication times for all nodes during one iteration and with the highest frequency.
419     \item[{$\Fmax[ij]$}] array of the maximum frequencies for all nodes.
420     \item[{$\Pd[ij]$}] array of the dynamic powers for all nodes.
421     \item[{$\Ps[ij]$}] array of the static powers for all nodes.
422     \item[{$\Fdiff[ij]$}] array of the differences between two successive frequencies for all nodes.
423     \end{description}
424     \Ensure $\Sopt[11],\Sopt[12] \dots, \Sopt[NM_i]$,  a vector of scaling factors that gives the optimal tradeoff between energy consumption and execution time
425
426     \State $\Scp[ij] \gets \frac{\max_{i=1,2,\dots,N}(\max_{j=1,2,\dots,M_i}(\Tcp[ij]))}{\Tcp[ij]} $
427     \State $F_{ij} \gets  \frac{\Fmax[ij]}{\Scp[i]},~{i=1,2,\cdots,N},~{j=1,2,\dots,M_i}.$
428     \State Round the computed initial frequencies $F_i$ to the closest  available frequency for each node.
429     \If{(not the first frequency)}
430           \State $F_{ij} \gets F_{ij}+\Fdiff[ij],~i=1,\dots,N,~{j=1,\dots,M_i}.$
431     \EndIf
432     \State $\Told \gets $ computed as in equations (\ref{eq:told}).
433     \State $\Eoriginal \gets $ computed as in equations (\ref{eq:eorginal}) .
434     \State $\Sopt[ij] \gets 1,~i=1,\dots,N,~{j=1,\dots,M_i}. $
435     \State $\Dist \gets 0 $
436     \While {(all nodes have not reached their  minimum   \newline\hspace*{2.5em} frequency \textbf{or}  $\Pnorm - \Enorm < 0 $)}
437         \If{(not the last freq. \textbf{and} not the slowest node)}
438         \State $F_{ij} \gets F_{ij} - \Fdiff[ij],~{i=1,\dots,N},~{j=1,\dots,M_i}$.
439         \State $S_{ij} \gets \frac{\Fmax[ij]}{F_{ij}},~{i=1,\dots,N},~{j=1,\dots,M_i}.$
440         \EndIf
441        \State $\Tnew \gets $ computed as  in equations (\ref{eq:perf}). 
442        \State $\Ereduced \gets $ computed as  in equations (\ref{eq:energy}). 
443        \State $\Pnorm \gets \frac{\Told}{\Tnew}$
444        \State $\Enorm\gets \frac{\Ereduced}{\Eoriginal}$
445       \If{$(\Pnorm - \Enorm > \Dist)$}
446         \State $\Sopt[ij] \gets S_{ij},~i=1,\dots,N,~j=1,\dots,M_i. $
447         \State $\Dist \gets \Pnorm - \Enorm$
448       \EndIf
449     \EndWhile
450     \State  Return $\Sopt[11],\Sopt[12],\dots,\Sopt[NM_i]$
451   \end{algorithmic}
452   \caption{Scaling factors selection algorithm}
453   \label{HSA}
454 \end{algorithm}
455
456 \begin{algorithm}
457   \begin{algorithmic}[1]
458     % \footnotesize
459     \For {$k=1$ to \textit{some iterations}}
460       \State Computations section.
461       \State Communications section.
462       \If {$(k=1)$}
463         \State Gather all times of computation and\newline\hspace*{3em}%
464                communication from each node.
465         \State Call Algorithm \ref{HSA}.
466         \State Compute the new frequencies from the\newline\hspace*{3em}%
467                returned optimal scaling factors.
468         \State Set the new frequencies to nodes.
469       \EndIf
470     \EndFor
471   \end{algorithmic}
472   \caption{DVFS algorithm}
473   \label{dvfs}
474 \end{algorithm}
475
476 \subsection{The algorithm details}
477
478 In this section, Algorithm~\ref{HSA} is presented. It selects the frequency
479 scaling factors vector that gives the best trade-off between minimizing the
480 energy consumption and maximizing the performance of a message passing
481 synchronous iterative application executed on a heterogeneous grid platform. It works
482 online during the execution time of the iterative message passing program.  It
483 uses information gathered during the first iteration such as the computation
484 time and the communication time in one iteration for each node. The algorithm is
485 executed after the first iteration and returns a vector of optimal frequency
486 scaling factors that satisfies the objective function (\ref{eq:max}). The
487 program applies DVFS operations to change the frequencies of the CPUs according
488 to the computed scaling factors.  This algorithm is called just once during the
489 execution of the program. Algorithm~\ref{dvfs} shows where and when the proposed
490 scaling algorithm is called in the iterative MPI program.
491
492 \begin{figure}[!t]
493   \centering
494   \includegraphics[scale=0.45]{fig/init_freq}
495   \caption{Selecting the initial frequencies}
496   \label{fig:st_freq}
497 \end{figure}
498
499 The nodes in a heterogeneous grid have different computing powers, thus
500 while executing message passing iterative synchronous applications, fast nodes
501 have to wait for the slower ones to finish their computations before being able
502 to synchronously communicate with them as in Figure~\ref{fig:heter}.  These
503 periods are called idle or slack times.  The algorithm takes into account this
504 problem and tries to reduce these slack times when selecting the frequency
505 scaling factors vector. At first, it selects initial frequency scaling factors
506 that increase the execution times of fast nodes and minimize the differences
507 between the computation times of fast and slow nodes. The value of the initial
508 frequency scaling factor for each node is inversely proportional to its
509 computation time that was gathered from the first iteration. These initial
510 frequency scaling factors are computed as a ratio between the computation time
511 of the slowest node and the computation time of the node $i$ as follows:
512 \begin{equation}
513   \label{eq:Scp}
514   \Scp[ij] =  \frac{ \mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}(\Tcp[ij])} {\Tcp[ij]}
515 \end{equation}
516 Using the initial frequency scaling factors computed in (\ref{eq:Scp}), the
517 algorithm computes the initial frequencies for all nodes as a ratio between the
518 maximum frequency of node $i$ and the computation scaling factor $\Scp[i]$ as
519 follows:
520 \begin{equation}
521   \label{eq:Fint}
522   F_{ij} = \frac{\Fmax[ij]}{\Scp[ij]},~{i=1,2,\dots,N},~{j=1,\dots,M}
523 \end{equation}
524 If the computed initial frequency for a node is not available in the gears of
525 that node, it is replaced by the nearest available frequency.  In
526 Figure~\ref{fig:st_freq}, the nodes are sorted by their computing power in
527 ascending order and the frequencies of the faster nodes are scaled down
528 according to the computed initial frequency scaling factors.  The resulting new
529 frequencies are highlighted in Figure~\ref{fig:st_freq}.  This set of
530 frequencies can be considered as a higher bound for the search space of the
531 optimal vector of frequencies because selecting scaling factors higher
532 than the higher bound will not improve the performance of the application and it
533 will increase its overall energy consumption.  Therefore the algorithm that
534 selects the frequency scaling factors starts the search method from these
535 initial frequencies and takes a downward search direction toward lower
536 frequencies or reaching to the lower bound. The lower bound is used to  stop 
537 the algorithm search process when the new computed distance between the energy and performance is less than zero.
538 The new negative distance is  mean that the performance degradation ratio is higher than energy saving ratio.
539 Therefore, the algorithm must stop the iterations before reaching to the end of the search space, the minimum frequencies, 
540 because the all the coming new distances are negative values.
541 The algorithm iterates on all remaining frequencies, from the higher
542 bound until all nodes reach their minimum frequencies or to the lower bound, to compute their overall
543 energy consumption and performance, and select the optimal frequency scaling
544 factors vector. At each iteration the algorithm determines the slowest node
545 according to the equation (\ref{eq:perf}) and keeps its frequency unchanged,
546 while it lowers the frequency of all other nodes by one gear.  The new overall
547 energy consumption and execution time are computed according to the new scaling
548 factors.  The optimal set of frequency scaling factors is the set that gives the
549 highest distance according to the objective function (\ref{eq:max}).
550
551 Figures~\ref{fig:r1} and \ref{fig:r2} illustrate the normalized performance and
552 consumed energy for an application running on a homogeneous platform and a
553 heterogeneous grid platform respectively while increasing the scaling factors. It can
554 be noticed that in a homogeneous platform the search for the optimal scaling
555 factor should start from the maximum frequency because the performance and the
556 consumed energy decrease from the beginning of the plot. On the other hand, in
557 the heterogeneous grid platform the performance is maintained at the beginning of the
558 plot even if the frequencies of the faster nodes decrease until the computing
559 power of scaled down nodes are lower than the slowest node. In other words,
560 until they reach the higher bound. It can also be noticed that the higher the
561 difference between the faster nodes and the slower nodes is, the bigger the
562 maximum distance between the energy curve and the performance curve is while the
563 scaling factors are varying which results in bigger energy savings. 
564
565
566 \section{Experimental results}
567 \label{sec.expe}
568
569 \subsection{Grid'5000 architature and power consumption}
570 \label{sec.grid5000}
571 The grid'5000 is a large-scale testbed found in France \cite{grid5000}.
572 The grid infrastructure consist of ten sites distributed over all France 
573 metropolitan regions. Each site in the grid'5000 composed from number of heterogeneous 
574 computing clusters, while each cluster includes a collection of homogeneous nodes.
575 In general, the grid'5000 had one thousand of heterogeneous nodes and eight thousand of cores. 
576 All the sites are connected together via special long distance network called RENATER,
577 which is the French National Telecommunication Network for Technology. Whereas inside each site 
578 the clusters and their nodes are connected throw high speed local area networks. 
579 There are different types of local networks used such as Ethernet and Infiniband netwoks,  
580 which allowed different gigabits bandwidth and latencies.  On the other hand, the nodes inside each cluster 
581 are homogeneous, while they are different from the nodes of the other clusters. Therefore, there are
582 a wide diversity of processors in grid'5000, that mainly had different processors families 
583 such as  Intel Xeon and AMD Opteron families. 
584
585 In this paper we are interested  to run NAS parallel v3.3 \cite{NAS.Parallel.Benchmarks} over grid'5000.
586 We are used seven benchmarks, CG, MG, EP, LU, BT, SP and FT. These benchmarks used seven different types of classes.
587 These classes are S, W, A, B, C, D, E, where S represents the smaller problem size that used by benchmark and
588 E is represents the biggest class. In this work, the class D is used for all benchmarks in all the experiments that will 
589 be showed in the coming sections.
590 Moreover, the NAS parallel benchmarks have different computations and communications ratios, then it is interested 
591 to study their energy consumption and their performance on real testbed such as grid'5000.
592 In this work, the NAS benchmarks are executed over two sites, Lyon and Nancy sites, of grid'5000.
593 These two sites had seven different types of computing clusters as in figure (\ref{fig:grid5000}).
594
595 \begin{figure}[!t]
596   \centering
597   \includegraphics[scale=1]{fig/grid5000}
598   \caption{The selected two sites of grid'5000}
599   \label{fig:grid5000}
600 \end{figure}
601
602 Four clusters from the two sites are selected in the experiments, one cluster from 
603 Lyon site, Taurus cluster, and three clusters from Nancy site where are Graphene, 
604 Griffon and Graphite. Each one of these clusters has homogeneous nodes inside, while their nodes are
605 different from the nodes of other clusters in many aspects such as: computing power, power consumption, available 
606 frequencies ranges and the network features, the bandwidth and the latency. The Table \ref{table:grid5000} shows 
607 the details characteristics of these four clusters.
608
609   
610 \begin{table}[!t]
611   \caption{CPUs characteristics of the selected clusters}
612   % title of Table
613   \centering
614   \begin{tabular}{|*{7}{c|}}
615     \hline
616     Cluster     & CPU         & Max   & Min   & Diff. & no. of cores    & dynamic power   \\
617     Name        & model       & Freq. & Freq. & Freq. & per CPU         & of one core     \\
618                 &             & GHz   & GHz   & GHz   &                 &           \\
619     \hline
620     Taurus      & Intel       & 2.3  & 1.2  & 0.1     & 6               & \np[W]{35} \\
621                 & Xeon        &       &       &       &                 &            \\
622                 & E5-2630     &       &       &       &                 &            \\         
623     \hline
624     Graphene    & Intel       & 2.53  & 1.2   & 0.133 & 4               & \np[W]{23} \\
625                 & Xeon        &       &       &       &                 &            \\
626                 & X3440       &       &       &       &                 &            \\    
627     \hline
628     Griffon     & Intel       & 2.5   & 2     & 0.5   & 4               & \np[W]{46} \\
629                 & Xeon        &       &       &       &                 &            \\
630                 & L5420       &       &       &       &                 &            \\  
631     \hline
632     Graphite    & Intel       & 2     & 1.2   & 0.1   & 8               & \np[W]{35} \\
633                 & Xeon        &       &       &       &                 &            \\
634                 & E5-2650     &       &       &       &                 &            \\  
635     \hline
636   \end{tabular}
637   \label{table:grid5000}
638 \end{table} 
639
640 The grid'5000 testbed provided some monitoring and measurements features to captured 
641 the power consumption values for each node in any cluster of Lyon and Nancy sites. 
642 The power consumed for each node from the selected four clusters is measured. 
643 While the power consumed by any computing node is a collection of the powers  consumed by 
644 hard drive, main-board, memory and node's computing cores, for more detail refer to
645 \cite{Energy_measurement}. Therefore, the dynamic power consumed
646 by one core is not allowed to measured alone. To overcome this problem, firstly, 
647 we measured the power consumed by one node when there is no computation, when 
648 the CPU is in the idle state. The second step, we run EP benchmark, there is no communications 
649 in this benchmarks, over one core with maximum frequency of the desired node and 
650 capturing the power consumed by a node, this representing the peak power of the node with one core.  
651 The difference between the peak power  and the idle power representing the 
652 dynamic power consumption of that core with maximum frequency, for example see figure(\ref{fig:power_cons}). 
653 The $\Ppeak[jx]$ is the peak power value in time $x$ with maximum frequency for one core of node $j$, 
654 and $\Pidle[jy]$ is the idle power value in time $y$ for the one  core of the node $j$ . 
655 The dynamic power $\Pd[j]$ is computed as in equation (\ref{eq:pdyn})
656 \begin{equation}
657   \label{eq:pdyn}
658     \Pd[j] = \max_{x=\beta_1,\dots \beta_2} (\Ppeak[jx])  -  \min_{y=\Theta_1,\dots \Theta_2} (\Pidle[jy])
659 \end{equation}
660
661 where $\Pd[j]$ is the dynamic power consumption for one core of node $j$, 
662 $\lbrace \beta_1,\beta_2 \rbrace$ is the time interval for the measured peak power values, 
663 $\lbrace\Theta_1,\Theta_2\rbrace$ is the time interval for the measured  idle power values.
664 Therefore, the dynamic power of one core is computed as the difference between the maximum 
665 measured value in peak powers vector and the minimum measured value in the idle powers vector.
666 We are computed the dynamic powers, using the equation (\ref{eq:pdyn}), for all nodes in the 
667 selected clusters, which is recorded in table  \ref{table:grid5000}.
668 On the other side, the static power consumption by one core is embedded with whole idle power consumption of the node.
669 Indeed, the static power is represents as ratio from  dynamic power. So, we supposed  
670 the static power consumption represented  as \np[\%]{20} of dynamic power consumption of the core, 
671 the same assumption was made in \cite{Our_first_paper,pdsec2015,Rauber_Analytical.Modeling.for.Energy}.
672 \begin{figure}[!t]
673   \centering
674   \includegraphics[scale=0.6]{fig/power_consumption.pdf}
675   \caption{The power consumption by one core from Taurus cluster}
676   \label{fig:power_cons}
677 \end{figure}
678
679
680 \subsection{The experimental results of the scaling algorithm}
681 \label{sec.res}
682
683 \subsection{The experimental results of multi-cores clusters}
684 \label{sec.res}
685
686 \subsection{The results for different power consumption scenarios}
687 \label{sec.compare}
688
689
690
691
692 \subsection{The comparison of the proposed scaling algorithm }
693 \label{sec.compare_EDP}
694
695
696
697 \section{Conclusion}
698 \label{sec.concl}
699
700
701
702 \section*{Acknowledgment}
703
704 This work  has been  partially supported by  the Labex ACTION  project (contract
705 ``ANR-11-LABX-01-01'').  Computations  have been performed  on the supercomputer
706 facilities  of the  Mésocentre de  calcul de  Franche-Comté. As  a  PhD student,
707 Mr. Ahmed  Fanfakh, would  like to  thank the University  of Babylon  (Iraq) for
708 supporting his work.
709
710 % trigger a \newpage just before the given reference
711 % number - used to balance the columns on the last page
712 % adjust value as needed - may need to be readjusted if
713 % the document is modified later
714 %\IEEEtriggeratref{15}
715
716 \bibliographystyle{IEEEtran}
717 \bibliography{IEEEabrv,my_reference}
718 \end{document}
719
720 %%% Local Variables:
721 %%% mode: latex
722 %%% TeX-master: t
723 %%% fill-column: 80
724 %%% ispell-local-dictionary: "american"
725 %%% End:
726
727 % LocalWords:  Fanfakh Charr FIXME Tianhe DVFS HPC NAS NPB SMPI Rauber's Rauber
728 % LocalWords:  CMOS EPSA Franche Comté Tflop Rünger IUT Maréchal Juin cedex GPU
729 % LocalWords:  de badri muslim MPI SimGrid GFlops Xeon EP BT GPUs CPUs AMD
730 %  LocalWords:  Spiliopoulos scalability