1 \documentclass[conference]{IEEEtran}
3 \usepackage[T1]{fontenc}
4 \usepackage[utf8]{inputenc}
5 \usepackage[english]{babel}
6 \usepackage{algpseudocode}
12 \DeclareUrlCommand\email{\urlstyle{same}}
14 \usepackage[autolanguage,np]{numprint}
16 \renewcommand*\npunitcommand[1]{\text{#1}}
17 \npthousandthpartsep{}}
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}
26 \newcommand{\Xsub}[2]{{\ensuremath{#1_\mathit{#2}}}}
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}
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}}
64 \title{Energy Consumption Reduction with DVFS for \\
65 Message Passing Iterative Applications on \\
66 Heterogeneous Architectures}
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}
92 \section{Introduction}
97 \section{Related works}
101 \section{The performance and energy consumption measurements on heterogeneous architecture}
104 \subsection{The execution time of message passing distributed iterative
105 applications on a heterogeneous platform}
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.
114 \includegraphics[scale=0.6]{fig/commtasks}
115 \caption{Parallel tasks on a heterogeneous platform}
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.
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
138 S = \frac{\Fmax}{\Fnew}
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.
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}).
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])
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.
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.
183 \subsection{Energy model for heterogeneous platform}
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}).
195 \Pd = \alpha \cdot \CL \cdot V^2 \cdot F
197 The static power $\Ps$ captures the leakage power as follows:
200 \Ps = V \cdot \Ntrans \cdot \Kdesign \cdot \Ileak
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:
208 \Eind = \Pd \cdot \Tcp + \Ps \cdot T
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.
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
227 \Fnew = S^{-1} \cdot \Fmax
229 Replacing $\Fnew$ in (\ref{eq:pd}) as in (\ref{eq:fnew}) gives the following
230 equation for dynamic power consumption:
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}
236 where $\PdNew$ and $\PdOld$ are the dynamic power consumed with the
237 new frequency and the maximum frequency respectively.
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:
247 \EdNew = \PdOld \cdot S^{-3} \cdot (\Tcp \cdot S)= S^{-2}\cdot \PdOld \cdot \Tcp
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:
262 \Es = \Ps \cdot (\Tcp \cdot S + \Tcm)
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:
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]) ))
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.
297 \section{Optimization of both energy consumption and performance}
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.
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:
332 \Pnorm = \frac{\Tnew}{\Told}
336 Where $Tnew$ is computed as in (\ref{eq:perf}) and $Told$ is computed as in (\ref{eq:told})
339 \Told = \mathop{\max_{i=1,2,\dots,N}}_{j=1,2,\dots,M} (\Tcp[ij]+\Tcm[ij])
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:
346 \Enorm = \frac{\Ereduced}{\Eoriginal}
349 Where $\Ereduced$ is computed using (\ref{eq:energy}) and $\Eoriginal$ is
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)
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.
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:
372 \Pnorm = \frac{\Told}{\Tnew}
377 \subfloat[Homogeneous cluster]{%
378 \includegraphics[width=.33\textwidth]{fig/homo}\label{fig:r1}}%
380 \subfloat[Heterogeneous grid]{%
381 \includegraphics[width=.33\textwidth]{fig/heter}\label{fig:r2}}
383 \caption{The energy and performance relation}
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:
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}} )
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}.
407 \section{The scaling factors selection algorithm for heterogeneous grid platforms }
411 \begin{algorithmic}[1]
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.
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
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}.$
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}.$
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$
450 \State Return $\Sopt[11],\Sopt[12],\dots,\Sopt[NM_i]$
452 \caption{Scaling factors selection algorithm}
457 \begin{algorithmic}[1]
459 \For {$k=1$ to \textit{some iterations}}
460 \State Computations section.
461 \State Communications section.
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.
472 \caption{DVFS algorithm}
476 \subsection{The algorithm details}
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.
494 \includegraphics[scale=0.45]{fig/init_freq}
495 \caption{Selecting the initial frequencies}
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:
514 \Scp[ij] = \frac{ \mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}(\Tcp[ij])} {\Tcp[ij]}
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
522 F_{ij} = \frac{\Fmax[ij]}{\Scp[ij]},~{i=1,2,\dots,N},~{j=1,\dots,M}
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}).
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.
566 \section{Experimental results}
569 \subsection{Grid'5000 architature and power consumption}
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.
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}).
597 \includegraphics[scale=1]{fig/grid5000}
598 \caption{The selected two sites of grid'5000}
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.
611 \caption{CPUs characteristics of the selected clusters}
614 \begin{tabular}{|*{7}{c|}}
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 & & \\
620 Taurus & Intel & 2.3 & 1.2 & 0.1 & 6 & \np[W]{35} \\
622 & E5-2630 & & & & & \\
624 Graphene & Intel & 2.53 & 1.2 & 0.133 & 4 & \np[W]{23} \\
628 Griffon & Intel & 2.5 & 2 & 0.5 & 4 & \np[W]{46} \\
632 Graphite & Intel & 2 & 1.2 & 0.1 & 8 & \np[W]{35} \\
634 & E5-2650 & & & & & \\
637 \label{table:grid5000}
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})
658 \Pd[j] = \max_{x=\beta_1,\dots \beta_2} (\Ppeak[jx]) - \min_{y=\Theta_1,\dots \Theta_2} (\Pidle[jy])
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}.
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}
680 \subsection{The experimental results of the scaling algorithm}
683 \subsection{The experimental results of multi-cores clusters}
686 \subsection{The results for different power consumption scenarios}
692 \subsection{The comparison of the proposed scaling algorithm }
693 \label{sec.compare_EDP}
702 \section*{Acknowledgment}
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
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}
716 \bibliographystyle{IEEEtran}
717 \bibliography{IEEEabrv,my_reference}
724 %%% ispell-local-dictionary: "american"
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