\section{Introduction}
\label{ch1:1}
-Traditionally, almost of the software applications are programmed as a sequential programs according to the Von Neumann report in 1993 \cite{ref50}. The structure of the
-program code is understandable by the human brain as a series of instructions that execute one after the other. From many years until a short time, the users of the sequential applications had moved their thinking towards that these applications must run faster with each new generation of microprocessors. This idea is no longer valid nowadays, because the recent release of the microprocessors have many computing units embedded in one chip and these programs are only run over one computing unit sequentially.
+Traditionally, most of the software applications are programmed as a sequential programs according to the Von Neumann report in 1993 \cite{ref50}. The structure of the
+program code is understandable by the human brain as a series of instructions that execute one after the other. From many years until a short time, the users of the sequential applications had moved their thinking towards that these applications must run faster with each new generation of microprocessors. This idea is no longer valid nowadays, because the recent release of the microprocessors have many computing units embedded in one chip and these programs are only run over one computing unit sequentially.
Consequently, the traditional applications not have improved their performance a lot over the new architectures, whereas the new applications run faster over them in parallel. The parallel application is executed over all the available computing units at the same time to improve its performance. Furthermore, the concurrency revolution has been referred to the drastically improvement in the performance of the new applications side by side to the new parallel architectures \cite{ref51}. Therefore, parallel applications and parallel architectures are closely tied together. It is hard to think about any of parallel applications without thinking of the parallel hardware that executing them.
For example, the energy consumption of the parallel system mainly depends on both of the parallel application and the parallel architecture executing this application. Indeed, the energy consumption model or any measurement system depends on many specifications, some of them are concerting the parallel hardware architecture such as the frequency of the processor, power consumption of the processor and communication model. The others are concerting the parallel application such as the computation and communication times of the application.
\item \textbf{Loop-level parallelism (LLP)}:
The numerical algorithms and many other algorithms are executed iteratively the same program portion, the computations, using different forms of the loop statements allowed in the programming languages. At each iteration, the program need to scan a large data structure such as an array structure to make the arithmetic calculations. Inside the loop structure there are many instructions, which are independent or dependent. In a sequential loop execution the $i$ iteration must be executed after the completion of $(i-1)$ iteration.
-While, if each iteration is independent from the others, then all the iterations are distributed over many processors to be executed in a parallel,
+Whereas, if each iteration is independent from the others, then all the iterations are distributed over many processors to be executed in a parallel,
for example see figure\ref{fig:ch1:5}. In the parallel programming languages this type of a loop is called $parallel~loop$.
\begin{figure}[h!]
\label{ch1:4}
Many researchers~\cite{ref46,ref47,ref48,ref49} divide the power consumed by a processor into
-two power metrics: the static and the dynamic power. While the first one is
+two power metrics: the static and the dynamic power. The first one is
consumed as long as the computing unit is on, the latter is only consumed during
computation times. The dynamic power $P_{dyn}$ is related to the switching
activity $\alpha$, load capacitance $C_L$, the supply voltage $V$ and
\end{itemize}
Therefore, one of the more important goals of this work is to develop an energy models that
-take into account the communication times in addition to computation times to modelize and measure the energy consumptions of the parallel iterative methods. These models are dedicated to all parallel architectures such as the homogeneous and heterogeneous platforms, which may be local or distributed computing clusters.
+has be taken into consideration the communication times in addition to computation times to modelize and measure the energy consumptions of the parallel iterative methods. These models are dedicated to all parallel architectures such as the homogeneous and heterogeneous platforms, which may be local or distributed computing clusters.
\section{Conclusion}
\label{ch1:5}
-In this chapter, we have presented three sections for describing the parallel hardware architectures, parallel iterative applications and the energy consumption model used to measure the energies of these applications.
+In this chapter, three sections have been presented for describing the parallel hardware architectures, parallel iterative applications and the energy consumption model used to measure the energies of these applications.
In the first section, different types of parallelism levels that can be implemented in software and hardware techniques have explained. Furthermore, the types of the parallel architectures are demonstrated and classified according to how the computing units are connected to a memory model.
-Both of the shared and distributed platforms are demonstrated and depending on them we have categorized the parallel programming models.
-In the second section, we have described the two types of parallel iterative methods, the synchronous and asynchronous iterative methods. The synchronous iterative methods are well implemented over local homogeneous cluster with a high speed network link, while the asynchronous iterative methods are more conventional to implement over the distributed heterogeneous clusters.
+Both of the shared and distributed platforms are demonstrated and depending on them the parallel programming models have categorized.
+In the second section, the two types parallel iterative methods are described as synchronous and asynchronous iterative methods. The synchronous iterative methods are well implemented over local homogeneous cluster with a high speed network link, while the asynchronous iterative methods are more conventional to implement over the distributed heterogeneous clusters.
Finally in the third section, the energy consumption model used for measuring the energy consumption of the parallel applications from the related literature is described. This model cannot be used for all types of parallel architectures. Indeed, it assumes measuring the dynamic power during both of the communication and computation times, while the processor involved remains idle during the communication times and only consumes the static power. Moreover, it is not well adapted to the heterogeneous architectures when there are different types of the processors, which are consumed different dynamic and static powers.
-However, in the next chapters of this thesis a new energy consumption models are developed, which they use for modeling and measuring the energy consumptions by a parallel iterative methods running on both homogeneous and heterogeneous architectures. Furthermore, these energies model use in a methods for optimizing both of the energy consumption and the performance of the iterative message passing applications.
\ No newline at end of file
+However, in the next chapters of this thesis a new energy consumption models are developed, and how these
+energy model are used for modeling and measuring the energy consumptions by a parallel iterative methods running on both homogeneous and heterogeneous architectures. Furthermore, these energies model use in a methods for optimizing both of the energy consumption and the performance of the iterative message passing applications.
\ No newline at end of file