1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7 \newcommand{\AG}[2][inline]{%
8 \todo[color=green!50,#1]{\sffamily\textbf{AG:} #2}\xspace}
9 \newcommand{\JC}[2][inline]{%
10 \todo[color=red!10,#1]{\sffamily\textbf{JC:} #2}\xspace}
12 \newcommand{\Xsub}[2]{{\ensuremath{#1_\mathit{#2}}}}
14 %% used to put some subscripts lower, and make them more legible
15 \newcommand{\fxheight}[1]{\ifx#1\relax\relax\else\rule{0pt}{1.52ex}#1\fi}
17 \newcommand{\Tcomp}[1][]{\Xsub{T}{comp}_{#1}}
18 \renewcommand*\npunitcommand[1]{\text{#1}}
21 \chapter{Energy optimization of homogeneous platform}
24 \section{Introduction}
27 Dynamic Voltage and Frequency Scaling (DVFS) can be applied to modern CPUs. This technique is
28 usually used to reduce the energy consumed by a CPU while computing. Indeed,
29 power consumption by a processor is exponentially related to its frequency.
30 Thus, decreasing the frequency reduces the power consumed by the CPU. However, it can also
31 significantly affect the performance of the executed program if it is compute bound. The performance degradation ratio can even be higher
32 than the saved energy ratio. Therefore, the chosen frequency scaling factor must give the best possible
33 trade-off between energy reduction and performance. This chapter presents an algorithm
34 that predicts the energy consumed with each frequency gear and selects the one that gives
35 the best ratio between energy consumption reduction and performance. Furthermore, the main
36 objective of HPC systems is to execute as fast as possible the application. Therefore, our
37 algorithm selects the scaling factor online with very small overhead. The proposed algorithm
38 takes into account both the computation and communication times of the Message passing
39 programs (MPI) to choose the frequency scaling factor.
40 This algorithm has the ability to predict both energy consumption and execution time over
41 all available scaling factors. The prediction achieved depends on some computing time information,
42 gathered at the beginning of the runtime. We have applied this algorithm to the NAS parallel
43 benchmarks (NPB v3.3) developed by NASA~\cite{ref65}. Our experiments are executed using the simulator
44 SimGrid/SMPI v3.10~\cite{ref66} over an homogeneous
45 distributed memory architecture.
47 This chapter is composed of two parts. The first part, the proposed frequency scaling selection algorithm uses the energy model of the Rauber and Rünger \cite{ref47}. and is compared to Rauber and Rünger's method. The comparison results show that our algorithm gives better energy-time trade-off. In the second part, a new energy model that takes into account both the communication and computation times of the MPI programs running over a homogeneous cluster is developed.
48 It also shows the new results obtained using the new energy model. The results are compared to the ones given by Rauber and Rünger energy model.
51 This chapter is organized as follows: Section~\ref{ch2:2} explains the execution
52 of parallel tasks and the sources of slack times. It also presents an energy
53 model for homogeneous platforms from other researchers. Section~\ref{ch2:3} describes how the
54 performance of MPI programs can be predicted. Section~\ref{ch2:4} presents
55 the energy-performance objective function that maximizes the reduction of energy
56 consumption while minimizing the degradation of the program's performance.
57 Section~\ref{ch2:5} details the algorithm that returns the scaling factor that gives the best energy-performance
58 trade-off for a parallel iterative application.
59 Section~\ref{ch2:6} verifies the accuracy of the performance prediction model
60 and presents the results of the proposed algorithm. It also shows the
61 comparison results between our method and other existing method.
62 Section~\ref{ch2:7} describes the new proposed energy consumption model for
63 homogeneous platforms. Section~\ref{ch2:8} presents the experimental results
64 of using the new energy model. Finally, section~\ref{ch2:9} summarizes this chapter.
67 \section{Related works}
71 In this section, some heuristics to compute the scaling factor are presented and
72 classified into two categories: offline and online methods.
74 \subsection{Offline scaling factor selection methods}
76 The offline scaling factor selection methods are executed before the runtime of
77 the program. They return static scaling factor values to the processors
78 participating in the execution of the parallel program. On the one hand, the
79 scaling factor values could be computed based on information retrieved by
80 analyzing the code of the program and the computing system that will execute it.
81 In~\cite{ref56}, Azevedo et al. detect during compilation the dependency points
82 between tasks in a multi-task program. This information is then used to lower
83 the frequency of some processors in order to eliminate slack times. A slack
84 time is the period of time during which a processor that has already finished
85 its computation, has to wait for a set of processors to finish their
86 computations and send their results to the waiting processor in order to
87 continue its task that is dependent on the results of computations being
88 executed on other processors. Freeh et al. showed in~\cite{ref53} that the
89 communication times of MPI programs do not change when the frequency is scaled
90 down. On the other hand, some offline scaling factor selection methods use the
91 information gathered from previous full or partial executions of the program.
92 The whole program or a part of it is usually executed over all the available frequency
93 gears and the execution time and the energy consumed with each frequency
94 gear are measured. Then a heuristic or an exact method uses the retrieved
95 information to compute the values of the scaling factor for the processors.
96 In~\cite{ref57}, Xie et al. use an exact exponential breadth-first search algorithm
97 to compute the scaling factor values that give the optimal energy reduction
98 while respecting a deadline for a sequential program. They also present a
99 linear heuristic that approximates the optimal solution. In~\cite{ref58}, Rountree
100 et al. use a linear programming algorithm, while in~\cite{ref59,ref60}, Cochran et
101 al. use a multi-logistic regression algorithm for the same goal. The main
102 drawback of these methods is that they all require executing the
103 whole program or, a part of it, on all frequency gears for each new instance of
106 \subsection{Online scaling factor selection methods}
108 The online scaling factor selection methods are executed during the runtime of
109 the program. They are usually integrated into iterative programs where the same
110 block of instructions is executed many times. During the first few iterations,
111 a lot of information are measured such as the execution time, the energy consumed
112 using a multimeter, the slack times, \dots{} Then a method will exploit these
113 measurements to compute the scaling factor values for each processor. This
114 operation, measurements and computing new scaling factors, can be repeated as
115 much as needed if the iterations are not regular. Kimura, Peraza, Yu-Liang et
116 al.~\cite{ref61,ref55,ref62} used many heuristics to select the appropriate scaling
117 factor values to eliminate the slack times during runtime. However, as seen
118 in~\cite{ref63,ref64}, machine learning methods can take a lot of time to converge
119 when the number of available gears is big. To reduce the impact of slack times,
120 in~\cite{ref54}, Lim et al. developed an algorithm that detects the communication
121 sections and changes the frequency during these sections only. This approach
122 might change the frequency of each processor many times per iteration if an
123 iteration contains more than one communication section. In~\cite{ref53}, Rauber and
124 Rünger used an analytical model that can predict the consumed energy and the
125 execution time for every frequency gear after measuring the consumed energy and
126 the execution time with the highest frequency gear. These predictions may be
127 used to choose the optimal gear for each processor executing the parallel
128 program to reduce energy consumption. To maintain the performance of the
129 parallel program , they set the processor with the biggest load to the highest
130 gear and then compute the scaling factor values for the rest of the processors.
131 Although this model was built for parallel architectures, it can be adapted to
132 distributed architectures by taking into account the communication times. The
133 primary contribution of this chapter is to present a new online scaling factor
134 selection method which has the following characteristics:
136 \item It is based on both Rauber and Rünger and the new energy model to predict the energy consumption of the application with different frequency gears.
137 \item It selects the frequency scaling factor for simultaneously optimizing
138 energy reduction and maintaining performance.
139 \item It is well adapted to distributed architectures because it takes into
140 account the communication time.
141 \item It is well adapted to distributed applications with imbalanced tasks.
142 \item It has a very small footprint when compared to other methods
143 (e.g.,~\cite{ref64}) and does not require profiling or training as
144 in~\cite{ref59,ref60}.
148 \section{Execution time and energy consumption of parallel tasks running on a homogeneous platform}
151 \subsection{Parallel tasks execution on a homogeneous platform}
153 A homogeneous cluster consists in identical nodes in terms of hardware and
154 software. Each node has its own memory and at least one processor which can be
155 a multi-core. The nodes are connected via a high bandwidth network. Tasks
156 executed on this model can be either synchronous or asynchronous. In this chapter
157 we consider the execution of synchronous tasks on distributed homogeneous
158 platform. These tasks can synchronously exchange data via message passing.
165 \includegraphics[scale=0.73]{fig/ch2/commtasks}
166 \includegraphics[scale=0.73]{fig/ch2/compt}\\ ~ ~ ~ ~ ~ ~(a) ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~(b)
167 \caption{Parallel tasks execution on a homogeneous platform (a) imbalanced communications and (b) imbalanced
172 The execution time of a task consists in the computation time and the
173 communication time. Moreover, the synchronous communications between tasks can
174 lead to slack times while tasks wait at a synchronization barrier for other
175 tasks to finish their tasks (see figure~\ref{fig:homo}(a)). The imbalanced
176 communications happen when nodes have to send/receive different amounts of data
177 or they communicate with different numbers of nodes. Other sources of slack
178 times are imbalanced computations. This happens when processing different
179 amounts of data on each processor (see figure~\ref{fig:homo}(b)). In this case the
180 fastest tasks have to wait at the synchronization barrier for the slowest ones
181 to continue their computations. In both cases the overall execution time of the program
182 is the execution time of the slowest task as in EQ~(\ref{eq:T1}).
185 \textit{Program Time} = \max_{i=1,2,\dots,N} T_i
187 where $T_i$ is the execution time of task $i$ and all the tasks are executed
188 concurrently on different processors.
190 \subsection{Energy consumption model for a homogeneous platform}
193 The total energy consumption model for a parallel homogeneous
194 platform, as presented by Rauber and Rünger~\cite{ref47}, can be written as a
195 function of the scaling factor $S$, as in EQ~\ref{eq:energy}.
196 Moreover, the scaling factor $S_1$ is the scaling factor which should be the
197 highest because they are proportional to the time values $T_i$. Therefore, the scaling
198 factors of the others tasks $S_i$ are computed as in EQ~\ref{eq:si}.
202 S_i = S \cdot \frac{T_1}{T_i}
203 = \frac{F_{max}}{F_{new}} \cdot \frac{T_1}{T_i}
206 Rauber and Rünger's scaling factor selection
207 method uses the same energy model. In their method, the optimal scaling factor is
208 computed by minimizing the derivation of EQ~(\ref{eq:energy}) which produces
213 S_\textit{opt} = \sqrt[3]{\frac{2}{N} \cdot \frac{P_\textit{dyn}}{P_\textit{static}} \cdot
214 \left( 1 + \sum_{i=2}^{N} \frac{T_i^3}{T_1^3} \right) }
217 This model computes the frequency scaling factor which minimizes the energy consumption of the parallel program.
219 \section{Performance evaluation of MPI programs}
222 The execution time of a parallel synchronous iterative application is equal
223 to the execution time of its slowest task as in figure~(\ref{fig:homo}).
224 If there is no communication in the application and it is not data bounded, the execution time of this
225 parallel application is linearly proportional to the operational frequency. Any
226 DVFS operation for energy reduction increases the execution time of the parallel
227 program. Therefore, the scaling factor $S$ is linearly proportional to the
228 execution time of the application. However, in most MPI applications the processes exchange
229 data. During these communications the processors involved remain idle during a synchronous communication. For that reason, any change in the frequency has no
230 impact on the time of communication~\cite{ref53}. The communication time for a
231 task is the summation of periods of time that begin with an MPI call for sending
232 or receiving a message until the message is synchronously sent or received. To
233 be able to predict the execution time of MPI program, the communication time and
234 the computation time for the slowest task must be measured before scaling. These
235 times are used to predict the execution time for any MPI program as a function
236 of the new scaling factor as in EQ~(\ref{eq:tnew}).
239 \textit T_\textit{new} = T_\textit{Max Comp Old} \cdot S + T_{\textit{Min Comm Old}}
241 In this chapter, this prediction method is used to select the best scaling factor
242 for each processor as presented in the next section.
246 \section{Performance and energy reduction trade-off}
248 This section presents our method for choosing the scaling factor that
249 gives the best tradeoff between energy reduction and performance. This method
250 takes into account the execution times for both computation and communication to
251 compute the scaling factor. Since the energy consumption and the performance
252 are not measured using the same metric, a normalized value of both measurements
253 can be used to compare them. The normalized energy is the ratio between the
254 consumed energy with scaled frequency and the consumed energy without scaled
259 E_\textit{Norm} = \frac{ E_\textit{Reduced}}{E_\textit{Original}}
260 = \frac{P_\textit{dyn} \cdot S_1^{-2} \cdot
261 \left( T_1 + \sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
262 P_\textit{static} \cdot T_1 \cdot S_1 \cdot N }{
263 P_\textit{dyn} \cdot \left(T_1+\sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
264 P_\textit{static} \cdot T_1 \cdot N }
266 In the same way we can normalize the performance as follows:
269 T_\textit{Norm} = \frac{T_\textit{New}}{T_\textit{Old}}
270 = \frac{T_\textit{Max Comp Old} \cdot S +
271 T_\textit{Min Comm Old}}{T_\textit{Max Comp Old} +
272 T_\textit{Min Comm Old}}
275 The relation between the execution time and the consumed energy of a program is nonlinear and complex. In consequences, the relation between the consumed energy and the scaling factor is also nonlinear, for more details refer to~\cite{ref53}. The resulting normalized energy consumption curve and execution time curve, for different scaling factors, do not have the same direction see Figure~\ref{fig:rel}(b). To tackle this problem and optimize both terms, we inverse the equation of the normalized execution time which gives the normalized performance and is computed as follows:
279 P_\textit{Norm} = \frac{ T_\textit{old}}{ T_\textit{new}}
280 = \frac{T_\textit{max Comp Old} +
281 T_\textit{min Comm Old}}{T_\textit{max Comp Old} \cdot S +
282 T_\textit{min Comm Old}}
288 \includegraphics[scale=1]{fig/ch2/file}\\~ ~ ~ ~ ~(a) \\
289 \includegraphics[scale=1]{fig/ch2/file3}\\~ ~ ~ ~ ~(b)
290 \caption{The energy and performance relation (a) Converted relation and (b) Real relation}
294 Then, we can model our objective function as finding the maximum distance
295 between the energy curve EQ~\ref{eq:enorm} and the performance
296 curve EQ~\ref{eq:pnorm_en} over all available scaling factors. This
297 represents the minimum energy consumption with minimum execution time (better
298 performance) at the same time, see Figure~\ref{fig:rel}(a). Then
299 our objective function has the following form:
303 MaxDist = \max_{j=1,2,\dots,F}
304 (\overbrace{P_\textit{norm}(S_j)}^{\text{Maximize}} -
305 \overbrace{E_\textit{norm}(S_j)}^{\text{Minimize}} )
307 where $F$ is the number of available frequencies. Then we can select the optimal
308 scaling factor that satisfies EQ~\ref{eq:max1}. Our objective function can
309 work with any energy model or static power values stored in a data file.
310 Moreover, this function works in optimal way when the energy curve has a convex
311 form over the available frequency scaling factors as shown in~\cite{ref48,ref47,ref64}.
313 \section{Optimal scaling factor for performance and energy}
317 \begin{algorithm}[!t]
318 \caption{Scaling factor selection algorithm for a homogeneous cluster}
320 \begin{algorithmic}[1]
321 \State Initialize the variable $Dist=0$
322 \State Set dynamic and static power values.
323 \State Set $P_{states}$ to the number of available frequencies.
324 \State Set the variable $F_{new}$ to max. frequency, $F_{new} = F_{max} $
325 \State Set the variable $F_{diff}$ to the difference between two successive
327 \For {$j:=1$ to $P_{states} $}
328 \State $F_{new}=F_{new} - F_{diff} $
329 \State $S = \frac{F_\textit{max}}{F_\textit{new}}$
330 \State $S_i = S \cdot \frac{T_1}{T_i}
331 = \frac{F_\textit{max}}{F_\textit{new}} \cdot \frac{T_1}{T_i}$
333 \State $E_\textit{Norm} =
334 \frac{P_\textit{dyn} \cdot S_1^{-2} \cdot
335 \left( T_1 + \sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
336 P_\textit{static} \cdot T_1 \cdot S_1 \cdot N }{
338 \left(T_1+\sum_{i=2}^{N}\frac{T_i^3}{T_1^2}\right) +
339 P_\textit{static} \cdot T_1 \cdot N }$
340 \State $P_{Norm}= \frac{T_{old}}{T_{new}}$
341 \If{$(P_{Norm}-E_{Norm} > Dist)$}
343 \State $Dist = P_{Norm} - E_{Norm}$
346 \State Return $S_{opt}$
351 Algorithm~\ref{EPSA} computes the optimal scaling factor according to the
352 objective function described above.
353 The proposed algorithm works online during the execution time of the MPI
354 program. It selects the optimal scaling factor after gathering the computation
355 and communication times from the program after one iteration. Then the program
356 changes the new frequencies of the CPUs according to the computed scaling
357 factors. The experiments conducted over a homogeneous cluster and described in
358 Section~\ref{ch2:6}, showed that this algorithm has a small execution time. It takes on average \np[$\mu$s]{1.52} for 4 nodes and \np[$\mu$s]{6.65} for 32
359 nodes. The algorithm complexity is $O(F\cdot N)$, where $F$ is the number of
360 available frequencies and $N$ is the number of computing nodes. The algorithm
361 is called just once during the execution of the program. The DVFS algorithm
362 ~\ref{dvfs} shows where and when the algorithm \ref{EPSA} is called in the MPI
367 \begin{algorithm}[!t]
368 \caption{DVFS algorithm of homogeneous cluster}
370 \begin{algorithmic}[1]
371 \For {$k:=1$ to \textit{some iterations}}
372 \State Computations section.
373 \State Communications section.
375 \State Gather all times of computation and communication from each node.
376 \State Call algorithm~\ref{EPSA} with these times.
377 \State Compute the new frequency from the returned optimal scaling factor.
378 \State Set the new frequency to the CPU.
385 After obtaining the optimal scaling factor, the program calculates the new
386 frequency $F_i$ for each task proportionally to its execution time, $T_i$. By
387 substitution of EQ~(\ref{eq:s}) in EQ~(\ref{eq:si}), we can calculate the new
388 frequency $F_i$ as follows:
391 F_i = \frac{F_\textit{max} \cdot T_i}{S_\textit{opt} \cdot T_\textit{max}}
393 According to this equation all the nodes may have the same frequency value if
394 they have balanced workloads, otherwise, they take different frequencies when
395 having imbalanced workloads. Thus, EQ~(\ref{eq:fi}) adapts the frequency of the
396 CPU to the nodes' workloads to maintain the performance of the program.
398 \section{Experimental results}
400 Our experiments are executed on the simulator SimGrid/SMPI v3.10. We configure
401 the simulator to use a homogeneous cluster with one core per node. The detailed
402 characteristics of our platform file are shown in
403 table~(\ref{table:platform-homo}). Each node in the cluster has 18 frequency values
404 from 2.5 GHz to 800 MHz with 100 MHz difference between each
405 two successive frequencies. The simulated network link is 1 GB Ethernet
406 (TCP/IP). The backbone of the cluster simulates a high performance switch.
409 \caption{Platform file parameters}
412 \begin{tabular}{|*{7}{l|}}
414 Max & Min & Backbone & Backbone & Link & Link & Sharing \\
415 Freq. & Freq. & Bandwidth & Latency & Bandwidth & Latency & Policy \\
417 2.5 & 800 & 2.25 GBps & 0.5 $\mu$s & 1 GBps & 50 $\mu$s & Full \\
418 GHz & MHz & & & & & Duplex \\
421 \label{table:platform-homo}
423 \subsection{Performance prediction verification}
425 In this section, the precision of the proposed performance prediction method
426 based on EQ~(\ref{eq:tnew}) is evaluated by applying it to the NAS benchmarks.
427 The NAS programs are executed with the class B option to compare the real execution
428 time with the predicted execution time. Each program runs offline with all available
429 scaling factors on 8 or 9 nodes (depending on the benchmark) to produce real
430 execution time values. These scaling factors are computed by dividing the
431 maximum frequency by the new one see EQ~(\ref{eq:s}).
436 \includegraphics[width=.49\textwidth]{fig/ch2/cg_per}
437 \includegraphics[width=.49\textwidth]{fig/ch2/mg_pre}
438 \includegraphics[width=.49\textwidth]{fig/ch2/bt_pre}
439 \includegraphics[width=.49\textwidth]{fig/ch2/lu_pre}
440 \caption{Comparing predicted to real execution time}
443 %see Figure~\ref{fig:pred}
444 In our cluster there are 18 available frequency states for each processor. This
445 leads to 18 run states for each program. Seven MPI programs of the NAS
446 parallel benchmarks were used: CG, MG, EP, FT, BT, LU and SP.~Figure~(\ref{fig:pred})
447 presents plots of the real execution times compared to the simulated ones. The maximum
448 normalized error between these two execution times varies between 0.0073 to
449 0.031 depending on the executed benchmark. The smallest prediction error
450 was for CG and the worst one was for LU.
453 \subsection{The experimental results for the scaling algorithm }
455 The proposed algorithm was applied to seven MPI programs of the NAS benchmarks
456 (EP, CG, MG, FT, BT, LU and SP) which were run with three classes (A, B and C).
457 For each instance, the benchmarks were executed on a number of processors
458 proportional to the size of the class. Each class represents the problem size in
459 ascending order from class A to C. The classes A, B and C were executed on 4, 8 or 9 and 16 nodes respectively. The energy consumption for all the NAS MPI programs was measured while assuming that the dynamic power with
460 the highest frequency is equal to 20 W and the static power is equal to
461 4 W for all the experiments. These power values were also used by Rauber and
462 Rünger in~\cite{ref47}. The results showed that the algorithm selected different
463 scaling factors for each program depending on the communication features of the
464 program as in the plots~(\ref{fig:nas}). These plots illustrate that there are
465 different distances between the normalized energy and the normalized
466 performance curves, because there are different communication features for each
467 benchmark. When there are little or no communications, the
468 performance curve is very close to the energy curve. Then the distance between
469 the two curves is very small. This leads to small energy savings. The opposite
470 happens when there are a lot of communication, the distance between the two
471 curves is big. This leads to more energy savings (e.g. CG and FT), see
472 table~(\ref{table:factors results}). All the discovered frequency scaling factors
473 optimize both the energy and the performance simultaneously for all the NAS
474 benchmarks. In table~(\ref{table:factors results}), the optimal
475 scaling factors results for each benchmark running class C are presented. These scaling
476 factors give the maximum energy saving percentage and the minimum performance
477 degradation percentage at the same time from all available scaling factors.
480 \includegraphics[width=.49\textwidth]{fig/ch2/ep}
481 \includegraphics[width=.49\textwidth]{fig/ch2/cg}
482 \includegraphics[width=.49\textwidth]{fig/ch2/sp}
483 \includegraphics[width=.49\textwidth]{fig/ch2/lu}
484 \includegraphics[width=.49\textwidth]{fig/ch2/bt}
485 \includegraphics[width=.49\textwidth]{fig/ch2/ft}
486 \caption{Optimal scaling factors for the predicted energy and performance of NAS benchmarks}
490 \caption{The scaling factors results}
493 \begin{tabular}{|l|*{4}{r|}}
495 Program & Optimal & Energy & Performance & Energy-Perf. \\
496 Name & Scaling Factor & Saving \% & Degradation \% & Distance \\
498 CG & 1.56 & 39.23 & 14.88 & 24.35 \\
500 MG & 1.47 & 34.97 & 21.70 & 13.27 \\
502 EP & 1.04 & 22.14 & 20.73 & 1.41 \\
504 LU & 1.38 & 35.83 & 22.49 & 13.34 \\
506 BT & 1.31 & 29.60 & 21.28 & 8.32 \\
508 SP & 1.38 & 33.48 & 21.36 & 12.12 \\
510 FT & 1.47 & 34.72 & 19.00 & 15.72 \\
513 \label{table:factors results}
514 % is used to refer this table in the text
517 As shown in table~(\ref{table:factors results}), when the optimal scaling
518 factor has a big value we can gain more energy savings as in CG and
519 FT benchmarks. The opposite happens when the optimal scaling factor has a small value as in BT and EP benchmarks. Our algorithm selects a big scaling factor value when the
520 communication and other slacks times are big. In EP there are no communication inside the iterations, which leads our algorithm to select smaller scaling factors (inducing smaller energy savings).
523 \subsection{Results comparison}
525 In this section, we compare our scaling factor selection method with Rauber and
526 Rünger's methods~\cite{ref47}. They had two scenarios, the first is to reduce energy
527 to the optimal level without considering the performance as in
528 EQ~(\ref{eq:sopt}). We refer to this scenario as $R_{E}$. The second scenario
529 is similar to the first except setting the slower task to the maximum frequency
530 (the scale $S=1$) to keep the performance from degradation as mush as
531 possible. We refer to this scenario as $R_{E-P}$ and to our
532 algorithm as EPSA (Energy to Performance Scaling Algorithm). The comparison is
533 made in table ~\ref{table:compareC}. This table shows the results of our method and
534 Rauber and Rünger scenarios for all the NAS benchmarks programs for class C.
537 \caption{Comparing results for the NAS class C}
540 \begin{tabular}{|l|l|*{4}{r|}}
542 Method & Program & Factor & Energy & Performance & Energy-Perf. \\
543 Name & Name & Value & Saving \% & Degradation \% & Distance \\
545 % \rowcolor[gray]{0.85}
546 $EPSA$ & CG & 1.56 & 39.23 & 14.88 & 24.35 \\ \hline
547 $R_{E-P}$ & CG & 2.15 & 45.36 & 25.89 & 19.47 \\ \hline
548 $R_{E}$ & CG & 2.15 & 45.36 & 26.70 & 18.66 \\ \hline
550 $EPSA$ & MG & 1.47 & 34.97 & 21.69 & 13.27 \\ \hline
551 $R_{E-P}$ & MG & 2.15 & 43.65 & 40.45 & 3.20 \\ \hline
552 $R_{E}$ & MG & 2.15 & 43.64 & 41.38 & 2.26 \\ \hline
554 $EPSA$ & EP & 1.04 & 22.14 & 20.73 & 1.41 \\ \hline
555 $R_{E-P}$ & EP & 1.92 & 39.40 & 56.33 & -16.93 \\ \hline
556 $R_{E}$ & EP & 1.92 & 38.10 & 56.35 & -18.25 \\ \hline
558 $EPSA$ & LU & 1.38 & 35.83 & 22.49 & 13.34 \\ \hline
559 $R_{E-P}$ & LU & 2.15 & 44.97 & 41.00 & 3.97 \\ \hline
560 $R_{E}$ & LU & 2.15 & 44.97 & 41.80 & 3.17 \\ \hline
562 $EPSA$ & BT & 1.31 & 29.60 & 21.28 & 8.32 \\ \hline
563 $R_{E-P}$ & BT & 2.13 & 45.60 & 49.84 & -4.24 \\ \hline
564 $R_{E}$ & BT & 2.13 & 44.90 & 55.16 & -10.26 \\ \hline
566 $EPSA$ & SP & 1.38 & 33.48 & 21.35 & 12.12 \\ \hline
567 $R_{E-P}$ & SP & 2.10 & 45.69 & 43.60 & 2.09 \\ \hline
568 $R_{E}$ & SP & 2.10 & 45.75 & 44.10 & 1.65 \\ \hline
570 $EPSA$ & FT & 1.47 & 34.72 & 19.00 & 15.72 \\ \hline
571 $R_{E-P}$ & FT & 2.04 & 39.40 & 37.10 & 2.30 \\ \hline
572 $R_{E}$ & FT & 2.04 & 39.35 & 37.70 & 1.65 \\ \hline
574 \label{table:compareC}
575 % is used to refer this table in the text
581 % \includegraphics[width=.6\textwidth]{fig/ch2/classA.eps}
582 % \includegraphics[width=.6\textwidth]{fig/ch2/classB.eps}
583 \includegraphics[width=.7\textwidth]{fig/ch2/classC.eps}
584 \caption{Comparing our method to Rauber and Rünger's methods}
590 As shown in the table~\ref{table:compareC}, the ($R_{E-P}$) method outperforms the ($R_{E}$)
591 method in terms of performance and energy reduction. The ($R_{E-P}$) method
592 also gives better energy savings than our method. However, although our scaling
593 factor is not optimal for energy reduction, the results in these tables prove
594 that our algorithm returns the best scaling factor that satisfy our objective
595 method: the largest distance between energy reduction and performance
596 degradation. Figure~\ref{fig:compare} illustrates even better the distance between the energy reduction and performance degradation. The negative values mean that one of
597 the two objectives (energy or performance) have been degraded more than the
598 other. The positive trade-offs with the highest values lead to maximum energy
599 savings while keeping the performance degradation as low as possible. Our
600 algorithm always gives the highest positive energy to performance trade-offs
601 while Rauber and Rünger's method, ($R_{E-P}$), gives sometimes negative
602 trade-offs such as for BT and EP.
605 \section{The new energy model for a homogeneous cluster}
607 As mentioned in chapter \ref{ch1} section \ref{ch1:3}, the power consumed by a processor is divided
608 into two power metrics: the static and the dynamic power. The first power metric is
609 consumed as long as the computing unit is on, while the other one is consumed when the processor is doing the computations. Consequentially, the energy consumed by an individual processor
610 to execute a given program can be computed as follows:
615 E_\textit{ind} = P_\textit{dyn} \cdot T_{Comp} + P_\textit{static} \cdot T
618 where $T$ is the execution time of the program, $T_{Comp}$ is the computation
619 time and $T_{Comp} \leq T$. $T_{Comp}$ may be equal to $T$ if there is no
620 communication, no slack time and no synchronization.
622 Applying a DVFS operation leads to a new frequency state which is represented by the frequency scaling factor $S$, computed as in the equation \ref{eq:s}. According to Rauber and Rünger's energy model \ref{eq:energy}, the dynamic energy is consumed during the overall program's execution time. This assumption is not precise because the CPU only consumes the dynamic power during computation time. Moreover, the CPU involved remains idle during the communication times and only consumes the static power, see \cite{ref53}. We have also conducted some experiments over a real homogeneous cluster where some MPI programs of the NAS benchmarks were executed while varying the CPUs frequencies at each execution. The results prove that changing the frequency do not effect on the communication times of these programs. Therefore, the frequency scaling factor $S$ can increase the computation times proportionally to its value, and do not effect the communication times. This assumption consort with the used performance prediction model \ref{eq:tnew}. This model is evaluated and its prediction accuracy is showed in section \ref{ch2:6:1}. Therefore, the new dynamic energy is the dynamic power multiplied by the new time of computation and is given by the following equation:
626 Ed_{New} = Pd_{Old} \cdot S^{-3} \cdot (T_{comp} \cdot S)= S^{-2} \cdot Pd_{Old} \cdot T_{comp}
629 The static power is related to the power leakage of the CPU and is consumed
630 during computation and even when idle. As in~\cite{ref47,ref46},
631 the static power of a processor is considered as constant during idle and
632 computation periods, and for all its available frequencies. The static energy
633 is the static power multiplied by the execution time of the program. According
634 to the execution time model in (\ref{eq:tnew}), the execution time of the
635 program is the sum of the computation and the communication times. The
636 computation time is linearly related to the frequency scaling factor, while this
637 scaling factor does not affect the communication time. Then, the static energy of a
638 processor after scaling its frequency is computed as follows:
640 \label{eq:Estatic_new}
641 Es = P_{static} \cdot (T_{comp} \cdot S + T_{comm})
644 In particular, in a homogeneous cluster all the computing nodes have the same specification and thus their CPUs have similar frequencies gears. The execution time of the MPI application is the execution time of the slowest task as shown in section \ref{ch2:2:1}. Therefore, the frequency scaling factor $S$ of the slowest task can be used to modelize the energy consumption of the parallel application.
645 The dynamic energy consumed by $N$ parallel tasks is the summation of all the dynamic energies of all tasks during the computation time $\Tcomp[i]$ of each task. The static energy of each task is the static power consumed during the execution time of the slower task because all the tasks are synchronised and have the same execution time.
646 Therefore, the energy consumption model of $N$ parallel task executed synchronously over a homogeneous platforms can be represented as in \ref{eq:e-new}.
650 E_{new} = \sum_{i=1}^{N} {(S^{-2} \cdot Pd \cdot \Tcomp[i])} +
651 ( Ps \cdot ( T_\textit{Max Comp Old} \cdot S + T_{\textit{Min Comm Old}} ) ) \cdot N
654 According to this model, the frequency scaling factor $S$ reduces the energy consumption of the homogeneous architecture by a factor of $S^{-2}$ and increases the execution time by a factor of $S$.
655 This model can be used to predict the energy consumption of the message passing synchronous iterative applications after gathering the computation and communication times of the first iteration.
656 Furthermore, it can be used to measure the energy consumption of the iterative application by multiplying the energy consumed of all tasks in one iteration by the number of the iterations.
658 This model is used by the algorithm \ref{EPSA} to predict the energy consumption and to select the optimal frequency scaling factor. The new frequency $F_i$ can be computed as in \ref{eq:fi} while using the new selected frequency scaling factor.
659 In the next section, algorithm \ref{EPSA} is re-evaluated while using this new energy model and the new results are presented.
661 \section{The experimental results using the new energy model}
664 This section presents the results of applying the frequency selection algorithm \ref{EPSA} using the new proposed energy model \ref{eq:e-new} to NAS parallel benchmarks.
665 The class C of the benchmarks was executed on a homogeneous architecture composed of 16 nodes and simulated by SimGrid. The same static and dynamic power values were used as in section \ref{ch2:6:2}. Figure \ref{fig:energy_con} presents the energy consumption of the NAS benchmarks class C using the new energy model and Rauber and Rünger's model. The energy consumptions of both models are computed using similar parameters: frequency scaling factors, dynamic and static powers values. As shown in this figure, the majority of the benchmarks consumes less energy using the new model than when using Rauber and Rünger's model.
666 Two reasons explain these differences in the energy consumptions: the first one is related to the dynamic power consumption, where the new energy model ensures that this power metric is only consumed during the computation time, while the other model assumes that the dynamic power is consumed during both computation and communication times and thus increasing the dynamic energy consumption.
667 The second reason is related to the execution time. In the new model only the computation times are increased when the frequency of a processor is scaled down, while
668 Rauber and Rünger's model indicates that both the computation and communication times
669 are increased according to the scaling factor and hence more static energy is consumed. Therefore, the MPI programs that have big communication times, have bigger energy consumption values using Rauber and Rünger's model when compared to the new model as for the CG, SP, LU and FT benchmarks. Whereas, if the MPI programs have very small communication times, their computed energy values have very small differences using both models such as in MG and BT benchmarks, or they are identical such as for the EP benchmark where there is no communication and no idle times.
674 \includegraphics[width=.7\textwidth]{fig/ch2/energy_con.eps}
675 \caption{Comparing the energy consumptions estimated using Rauber energy model and our own}
676 \label{fig:energy_con}
680 \begin{tabular}{|l|l|l|l|l|l|l|}
682 \multicolumn{1}{|c|}{\multirow{2}{*}{\begin{tabular}[c]{@{}c@{}}Method\\ Name\end{tabular}}} & \multicolumn{3}{c|}{Rauber Energy Model Results} & \multicolumn{3}{c|}{New Energy Model Results} \\ \cline{2-7}
683 \multicolumn{1}{|c|}{} & \begin{tabular}[c]{@{}l@{}}Scaling\\ Factors\end{tabular} & \begin{tabular}[c]{@{}l@{}}Energy \\ Saving\%\end{tabular} & \begin{tabular}[c]{@{}l@{}}Performance\\ Degradation\%\end{tabular} & \begin{tabular}[c]{@{}l@{}}Scaling\\ Factors\end{tabular} & \begin{tabular}[c]{@{}l@{}}Energy \\ Saving\%\end{tabular} & \begin{tabular}[c]{@{}l@{}}Performance\\ Degradation\%\end{tabular} \\ \hline
685 CG & 1.56 & 39.23 & 14.88 & 1.47 & 30.20 & 13.56 \\ \hline
686 MG & 1.47 & 34.97 & 21.69 & 1.38 & 30.04 & 16.48 \\ \hline
687 EP & 1.04 & 22.14 & 20.73 & 1.04 & 22.14 & 20.73 \\ \hline
688 LU & 1.38 & 35.83 & 22.49 & 1.31 & 29.15 & 18.03 \\ \hline
689 BT & 1.31 & 29.60 & 21.53 & 1.31 & 28.75 & 21.55 \\ \hline
690 SP & 1.38 & 33.48 & 21.35 & 1.31 & 28.93 & 14.83 \\ \hline
691 FT & 1.47 & 34.72 & 19.00 & 1.38 & 29.94 & 17.43 \\ \hline
693 \caption{The Results of NAS Parallel Benchmarks running on 16 nodes}
694 \label{table:new-res}
697 Table \ref{table:new-res} shows the energy saving and performance degradation percentages when applying the frequency selecting algorithm using the new proposed energy model. It also presents the new selected frequency scaling factors and compares them to the ones used by Rauber and Rünger's model. It shows that the new selected frequency scaling factors are smaller than those selected using the other model because the predicted energies by the new energy model are smaller.
698 Consequently, less energy savings and performance degradation percentages are produced according to
699 these smaller frequency scaling factors such as for the CG, MG, LU, SP and FT benchmarks. While in the BT and EP benchmarks where there are very small or no communication times, similar scaling factors are selected because the predicted energies by the two models are approximately equivalent.
701 Therefore, the new proposed energy model is more accurate than Rauber and Rünger's energy
702 model, because it takes into consideration both the communication and idle times in addition to
703 the computation times of message passing programs running over homogeneous clusters.
704 The scaling factor selection algorithm can work with any energy model and it selects the scaling factor values according to the predicted energy values.
708 In this chapter, a new online scaling factor selection method
709 that optimizes simultaneously the energy and performance of a distributed
710 application running on a homogeneous cluster have been presented . It uses the computation and
711 communication times measured at the first iteration to predict the energy
712 consumption and the performance of the parallel application at every available
713 frequency. Then, it selects the scaling factor that gives the best trade-off
714 between energy reduction and performance which is the maximum distance between
715 the energy and the performance curves. To evaluate this method, we
716 have applied it to the NAS benchmarks and it was compared to Rauber and Rünger's
717 method while being executed on the SimGrid simulator. The results showed that
718 our method, outperforms Rauber and Rünger's method in terms of energy-performance
719 ratio. Finally, this chapter presents a new energy consumption model for parallel
720 synchronous iterative methods running on homogeneous clusters. This model takes into consideration
721 both the computation and communication times and their relation with the frequency scaling
722 factor. The results obtained using the new energy model have shown that different frequency scaling factors
723 were selected which gave new experimental results that are more accurate and realistic.