%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Personnal defs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\Sec}[1]{Section~\ref{#1}}
\newcommand{\Fig}[1]{Figure~\ref{#1}}
\newcommand{\Alg}[1]{Algorithm~\ref{#1}}
\newcommand{\Lst}[1]{Listing~\ref{#1}}
\newcommand{\Tab}[1]{Table~\ref{#1}}
\newcommand{\Equ}[1]{(\ref{#1})}
\def\Reals{\mathbb{R}}

%\newenvironment{Algo}{\vspace{-1em}\begin{center}\begin{minipage}[h]{0.95\columnwidth}\begin{shaded}\begin{tabbing}%
%  \hspace{3mm}\=\hspace{3mm}\=\hspace{3mm}\=\hspace{3mm}\=\hspace{3mm}\=\hspace{3mm}\=\hspace{3mm}\= \kill} %
% { \end{tabbing}\vspace{-1em}\end{shaded}\end{minipage}\end{center}\vspace{-1em}}

\lstnewenvironment{Listing}[2]{\lstset{
%% basicstyle=\scriptsize\ttfamily,%
%%      breaklines=true, breakatwhitespace=true, language=C, keywordstyle=\color{black},%
%%      prebreak = \raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},%
%%      commentstyle=\textit, numbersep=1em, numberstyle=\tiny, numbers=left,%
%%      numberblanklines=false, mathescape, escapechar=@,
 label=#1, caption={#2}}
}{}

%\def\N{$\mathbb N$ }
\def\R{$\mathbb R$ }
\def\Z{$\mathbb Z$ }
\def\Q{$\mathbb Q$ }
\def\C{$\mathbb C$ }
\def\affect{$\leftarrow$ }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Main document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapterauthor{Sylvain Contassot-Vivier}{Université Lorraine, Loria UMR 7503 \& AlGorille INRIA Project Team, Nancy, France.}
\chapterauthor{Stephane Vialle}{SUPELEC, UMI GT-CNRS 2958 \& AlGorille INRIA Project Team, Metz, France.}
\chapterauthor{Jens Gustedt}{INRIA Nancy -- Grand Est, AlGorille INRIA Project Team, Strasbourg, France.}

\chapter{Development methodologies for GPU and cluster of GPUs}

% Introduction
\input{Chapters/chapter6/Intro}

% Partie 1 : CUDA - MPI synchrone avec recouvrement
\input{Chapters/chapter6/PartieSync}

% Partie 2 : CUDA - MPI asynchrone avec recouvrement
\input{Chapters/chapter6/PartieAsync}

% Partie 6 : Analyse prospective
\input{Chapters/chapter6/PartieORWL}

% Conclusion
\input{Chapters/chapter6/Conclu}

% Glossaire
\section{Glossary}
\begin{Glossary}
\item[AIAC] Asynchronous Iterations - Asynchronous Communications.
\item[Asynchronous iterations] Iterative process where each element is updated
  without waiting for the last updates of the other elements.
\item[Auxiliary computations] Optional computations performed in parallel to the
  main computations and used to complete them or speed them up.
\item[BSP parallel scheme] Bulk Synchronous Parallel, a parallel model that uses
  a repeated pattern (superstep) composed of: computation, communication, barrier.
\item[GPU stream] Serialized data transfers and computations performed on a same
  piece of data.
\item[Message loss/miss] Can be said about a message that is either not
  sent or sent but not received (possible with unreliable communication protocols).
\item[Message stamping] Inclusion of a specific value in messages of the same tag to
  distinguish them (kind of secondary tag).
\item[ORWL] Ordered Read Write Locks, a programming tool proposing a unified
  programming model.
\item[Page-locked data] Data that are locked in cache memory to ensure fast accesses.
\item[Residual] Difference between results of consecutive iterations in an
  iterative process.
\item[Streamed GPU sequence] GPU transfers and computations performed
  simultaneously via distinct GPU streams.
\end{Glossary}

% Biblio
\vspace{-2em}
\putbib[Chapters/chapter6/biblio6]

%%% Local Variables:
%%% mode: latex
%%% fill-column: 80
%%% ispell-dictionary: "american"
%%% mode: flyspell
%%% TeX-master: "../../BookGPU.tex"
%%% End:
