99 lines
2.7 KiB
TeX
99 lines
2.7 KiB
TeX
\subsection{Analyse durant la compilation}
|
|
|
|
\tikzset{local/rhl/.style={common/rhl=#1,minimum height=2.3ex,rounded corners=.5mm}}
|
|
|
|
%{{{
|
|
\begin{frame}{Besoin}
|
|
%{{{ frame "
|
|
Temps d'exécution concentré dans les boucles
|
|
|
|
$\implies$ parallélisation des boucles
|
|
|
|
\bigskip
|
|
|
|
\begin{columns}
|
|
\begin{column}{.5\paperwidth}
|
|
\lstvisible<2->{intro/loop_par}
|
|
\lstvisible<3->{intro/loop_seq}
|
|
\lstvisible<4->{intro/loop_par_hard}
|
|
\end{column}
|
|
\end{columns}
|
|
|
|
\bigskip
|
|
|
|
\visible<5>{
|
|
Objectif de la bibliothèque :
|
|
\begin{itemize}
|
|
\item analyse automatique durant la compilation
|
|
\item génération automatique
|
|
\end{itemize}
|
|
}
|
|
%}}}
|
|
\end{frame}
|
|
%}}}
|
|
|
|
%{{{
|
|
\begin{frame}{Analyse}
|
|
%{{{ frame "
|
|
\framesubtitle<-5>{Conditions de Bernstein}
|
|
\framesubtitle<6-7>{Identification des boucles parallélisables}
|
|
\framesubtitle<8>{Résultat}
|
|
|
|
\begin{columns}
|
|
\begin{column}{.5\paperwidth}
|
|
\begin{overprint}
|
|
\onslide+<1-5>
|
|
\lst{pfor/loop}
|
|
\def\x{x}\def\y{y}
|
|
\only<4>{\def\x{2}\def\y{4}}
|
|
\only<5>{\def\x{3}\def\y{5}}
|
|
\begin{exampleblock}<2-4>{Indépendance de deux instructions x et y selon Bernstein}
|
|
\vspace{-3ex}
|
|
\begin{align*}
|
|
\only<3-4>{\color{red!80!black}}W_\y \cap R_\x &\only<3-4>{\color{red!80!black}}= \alt<3-4>{\{\alt<3>{b}{d}\}}{\emptyset}\\
|
|
\only<4>{\color{red!80!black}}R_\y \cap W_\x &\only<4>{\color{red!80!black}}= \alt<4>{\{c\}}{\emptyset}\\
|
|
W_\x \cap W_\y &= \emptyset
|
|
\end{align*}
|
|
\end{exampleblock}
|
|
\foreach \l/\os/\col in {b/3/red,c/4/green!60!red,d/4/green!60!blue} {
|
|
\visible<\os>{
|
|
\tikz[remember picture,overlay,every node/.append style={local/rhl=\col}]{
|
|
\node[fit=(pic cs:pforloop\l rb)(pic cs:pforloop\l re)]{};
|
|
\node[fit=(pic cs:pforloop\l wb)(pic cs:pforloop\l we)]{};
|
|
}
|
|
}
|
|
}
|
|
\visible<5>{
|
|
\tikz[remember picture,overlay]{
|
|
\foreach \l/\col in {2/red,3/green,4/red,5/green,6/blue} {
|
|
\node[fit=(pic cs:pforloopl\l b)(pic cs:pforloopl\l e),local/rhl=\col]{};
|
|
\node[fit=(pic cs:pforloopl\l b)(pic cs:pforloopl\l e),local/rhl=\col]{};
|
|
}
|
|
}
|
|
|
|
\vspace{-39pt}
|
|
\begin{itemize}
|
|
\item[$\to$] analyse des variables
|
|
\end{itemize}
|
|
}
|
|
\onslide+<6-7>
|
|
\lst{pfor/loop_split}
|
|
\visible<7>{
|
|
\tikz[remember picture,overlay,every node/.append style={local/rhl=red}]{
|
|
\node[fit=(pic cs:pforloopsplitcrb)(pic cs:pforloopsplitcre)]{};
|
|
\node[fit=(pic cs:pforloopsplitcwb)(pic cs:pforloopsplitcwe)]{};
|
|
}
|
|
|
|
\begin{itemize}
|
|
\item[$\to$] analyse des fonctions d'indice
|
|
\end{itemize}
|
|
}
|
|
\onslide+<8>
|
|
\lst{pfor/loop_par}
|
|
\end{overprint}
|
|
\end{column}
|
|
\end{columns}
|
|
%}}}
|
|
\end{frame}
|
|
%}}}
|