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

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