defense/src/defense/2_alsk/2_repeat.tex

315 lines
8.6 KiB
TeX

\subsection{Répétabilité}
%{{{
\begin{frame}{Problème}
%{{{ frame "
\framesubtitle{Exécution séquentielle}
\colorlet{a}{colThread0}
\colorlet{b}{colThread1}
\begin{columns}
\begin{column}{\paperwidth}
\fig{repeat/prng/seq}
\end{column}
\end{columns}
\vfill
\begin{columns}
\begin{column}{.47\paperwidth}
\begin{itemize}
\item \textcolor{a}{$\frac{\text{tâche }0}{\text{\en{thread }0}} \to $ \visible<2->{12}%
\foreach[count=\i from 3] \n in {2,34,85,4,91} {\visible<\i->{, \n}}}
\vspace{1em}
\item<8-> \textcolor{b}{$\frac{\text{tâche }1}{\text{\en{thread }0}} \to $ \visible<8->{29}%
\foreach[count=\i from 9] \n in {85,98,3,35,65} {\visible<\i->{, \n}}}
\end{itemize}
\end{column}
\begin{column}{.37\paperwidth}% fix alignment with next frame
\end{column}
\begin{column}{.12\paperwidth}
\end{column}
\end{columns}
\only<14>{}% create overlay
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Problème}
%{{{ frame "
\framesubtitle{Exécution parallèle}
\colorlet{a}{colThread0}
\colorlet{b}{colThread1}
\begin{columns}
\begin{column}{\paperwidth}
\fig{repeat/prng/par}
\end{column}
\end{columns}
\vfill
\begin{columns}
\begin{column}{.47\paperwidth}
\begin{itemize}
\item \textcolor{a}{$\frac{\text{tâche }0}{\text{\en{thread }0}} \to $ \visible<2->{12}%
\foreach \n/\os in {34/4,4/6,29/8,98/10,65/13} {\visible<\os->{, \n}}}
\vspace{1em}
\item<3-> \textcolor{b}{$\frac{\text{tâche }1}{\text{\en{thread }0}} \to $ \visible<3->{2}%
\foreach[count=\i from 9] \n/\os in {85/5,91/7,85/9,3/11,35/12} {\visible<\os->{, \n}}}
\end{itemize}
\end{column}
\begin{column}{.37\paperwidth}
\only<14->{
\begin{itemize}
\setbeamertemplate{itemize items}{\raisebox{.4ex}{\textit{ou}}}
\item \raisebox{.4ex}{\textcolor{a}{34, 85, 91, 29, 98, 35}}
\vspace{1em}
\setbeamertemplate{itemize items}{\raisebox{.1ex}{\textit{ou}}}
\item \raisebox{.1ex}{\textcolor{b}{12, 2, 4, 85, 3, 65}}
\end{itemize}
}
\end{column}
\begin{column}{.12\paperwidth}
\only<15->{
\begin{itemize}
\setbeamertemplate{itemize items}{\raisebox{.4ex}{\textit{ou}}}
\item \raisebox{.4ex}{\dots}
\vspace{1em}
\setbeamertemplate{itemize items}{\raisebox{.1ex}{\textit{ou}}}
\item \raisebox{.1ex}{\dots}
\end{itemize}
}
\end{column}
\end{columns}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Solutions possibles}
%{{{ frame "
\begin{itemize}
\item un PRNG global $\implies$ aucune répétabilité
\vspace{1em}
\item un PRNG par \en{thread} $\implies$ répétabilité partielle
\vspace{1em}
\item un PRNG par tâche parallèle $\implies$ répétabilité totale
\end{itemize}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Solutions possibles}
%{{{ frame "
\framesubtitle{$\to$ Un PRNG par \en{thread}}
\colorlet{a}{colThread0}
\colorlet{b}{colThread1}
\colorlet{c}{b}
\only<1>{\colorlet{c}{black}}
\begin{columns}
\begin{column}{\paperwidth}
\fig{repeat/prng/parthread}
\end{column}
\end{columns}
\vfill
\begin{columns}
\begin{column}{.47\paperwidth}
\begin{itemize}
\item \textcolor{a}{$\frac{\text{tâche }0}{\text{\en{thread }0}} \to $ 12, 2, 34, 85, 4, 91}
\vspace{1em}
\item \textcolor{b}{$\frac{\text{tâche }1}{\text{\en{thread }1}} \to $ 42, 8, 9, 54, 95, 80}
\end{itemize}
\end{column}
\begin{column}{.47\paperwidth}
\only<2>{
\begin{itemize}
\setbeamertemplate{itemize items}{{$=$}}
\item \hspace{.5em}{\textcolor{a}{$\frac{\text{tâche }0}{\text{\en{thread }0}} \to $ 12, 2, 34, 85, 4, 91}}
\vspace{1em}
\setbeamertemplate{itemize items}{{$\neq$}}
\item \hspace{.5em}{\textcolor{b}{$\frac{\text{tâche }1}{\text{\en{thread }0}} \to $ 29, 85, 98, 3, 35, 65}}
\end{itemize}
}
\end{column}
\begin{column}{.02\paperwidth}
\end{column}
\end{columns}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Solutions possibles}
%{{{ frame "
\framesubtitle{$\to$ Un PRNG par tâche parallèle}
\begin{block}{Pré-requis}
\begin{itemize}
\item Système de liens (\texttt{RNG})
\item Identifier les tâches parallèles
\begin{itemize}
\item parcours de l'arbre du squelette algorithmique
\item connaissance de la nature des motifs d'exécution
\end{itemize}
\end{itemize}
\end{block}
\begin{alertblock}{Inconvénient}
\begin{itemize}
\item Beaucoup de PRNG créés
\begin{itemize}
\item[$\to$] réduction grâce à la connaissance des politiques d'exécution
\end{itemize}
\end{itemize}
\end{alertblock}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}<0>[noframenumbering]{Identification des tâches}
%{{{ frame "
\vspace*{-1.5ex}
\begin{columns}
\begin{column}{\paperwidth}
\fig{repeat/identify}
\end{column}
\end{columns}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Optimiser le nombre de PRNG}
%{{{ frame "
\def\N{9}
\begin{columns}
\begin{column}{.3\paperwidth}
\figonly<1>{repeat/seq}
\only<2>{\vspace*{-2.8ex}\def\T{2}\fig{repeat/par}}
\end{column}
\begin{column}{.6\paperwidth}
\only<1>{
\vspace*{-5ex}
Contraintes \#\en{threads} $\implies$ moins de PRNG
\vspace{4ex}
}
\only<2>{\vspace*{-3.25ex}}
\[
\only<1>{S_1 = \{\{m_0, m_1, m_2, m_3, m_4, m_5, m_6, m_7, m_8\}\}}
\only<2>{S_2 = \{\{m_0, m_1, m_2, m_3, m_4\}, \{m_5, m_6, m_7, m_8\}\}}
\]
\end{column}
\end{columns}
\only<3>{
\def\T{3}\fig{repeat/par}
\[
S_3 = \{\{m_0, m_1, m_2\},\{m_3, m_4, m_5\}, \{m_6, m_7, m_8\}\}
\]
}
\only<4>{
\def\T{4}\fig{repeat/par}
\[
S_4 = \{\{m_0, m_1, m_2\},\{m_3, m_4\},\{m_5, m_6\}, \{m_7, m_8\}\}
\]
}
\only<5>{
\def\T{5}\fig{repeat/par}
\vspace{13mm}
\[
S_5 = \{\{m_0, m_1\},\{m_2, m_3\},\{m_4, m_5\},\{m_6, m_7\},\{m_8\}\}
\]
}
\only<6>{
\def\T{6}\fig{repeat/par}
\vspace{13mm}
\[
S_6 = \{\{m_0, m_1\},\{m_2, m_3\},\{m_4, m_5\},\{m_6\},\{m_7\},\{m_8\}\}
\]
}
\only<7>{
\def\T{7}\fig{repeat/par}
\vspace{13mm}
\[
S_7 = \{\{m_0, m_1\},\{m_2,m_3\},\{m_4\},\{m_5\},\{m_6\},\{m_7\},\{m_8\}\}
\]
}
\only<8>{
\def\T{8}\fig{repeat/par}
\vspace{13mm}
\[
S_8 = \{\{m_0, m_1\},\{m_2\},\{m_3\},\{m_4\},\{m_5\},\{m_6\},\{m_7\},\{m_8\}\}
\]
}
\only<9>{
\begin{columns}
\begin{column}{\paperwidth}
\def\T{9}\fig{repeat/par}
\end{column}
\end{columns}
\vspace{25.8mm}
\[
S_9 = \{\{m_0\},\{m_1\},\{m_2\},\{m_3\},\{m_4\},\{m_5\},\{m_6\},\{m_7\},\{m_8\}\}
\]
}
% \begin{align*}
% \visible<1->{S_1 &= \{\{m_0, m_1, m_2, m_3, m_4, m_5, m_6, m_7, m_8\}\}}
% \visible<2->{\\S_2 &= \{\{m_0, m_1, m_2, m_3, m_4\}, \{m_5, m_6, m_7, m_8\}\}}
% \visible<3->{\\S_3 &= \{\{m_0, m_1, m_2\},\{m_3, m_4, m_5\}, \{m_6, m_7, m_8\}\}}
% \visible<4->{\\S_4 &= \{\{m_0, m_1, m_2\},\{m_3, m_4\},\{m_5, m_6\}, \{m_7, m_8\}\}}
% \end{align*}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Optimiser le nombre de PRNG}
%{{{ frame "
\begin{align*}
S_1 &= \{\{\tikzmark{s1e0b}m_0, m_1, m_2\tikzmark{s1e0e}, \tikzmark{s1e1b}m_3, m_4\tikzmark{s1e1e}, \tikzmark{s1e2b}m_5\tikzmark{s1e2e}, \tikzmark{s1e3b}m_6\tikzmark{s1e3e}, \tikzmark{s1e4b}m_7, m_8\tikzmark{s1e4e}\}\}\\
S_2 &= \{\{\tikzmark{s2e0b}m_0, m_1, m_2\tikzmark{s2e0e}, \tikzmark{s2e1b}m_3, m_4\tikzmark{s2e1e}\},\{\tikzmark{s2e2b}m_5\tikzmark{s2e2e}, \tikzmark{s2e3b}m_6\tikzmark{s2e3e}, \tikzmark{s2e4b}m_7, m_8\tikzmark{s2e4e}\}\}\\
S_3 &= \{\{\tikzmark{s3e0b}m_0, m_1, m_2\tikzmark{s3e0e}\},\{\tikzmark{s3e1b}m_3, m_4\tikzmark{s3e1e}, \tikzmark{s3e2b}m_5\tikzmark{s3e2e}\},\{\tikzmark{s3e3b}m_6\tikzmark{s3e3e}, \tikzmark{s3e4b}m_7, m_8\tikzmark{s3e4e}\}\}\\
S_4 &= \{\{\tikzmark{s4e0b}m_0, m_1, m_2\tikzmark{s4e0e}\},\{\tikzmark{s4e1b}m_3, m_4\tikzmark{s4e1e}\},\{\tikzmark{s4e2b}m_5\tikzmark{s4e2e}, \tikzmark{s4e3b}m_6\tikzmark{s4e3e}\},\{\tikzmark{s4e4b}m_7, m_8\tikzmark{s4e4e}\}\}
\end{align*}
\visible<2->{
\[
S = \{\{\tikzmark{se0b}m_0, m_1, m_2\tikzmark{se0e}\},\{\tikzmark{se1b}m_3, m_4\tikzmark{se1e}\},\{\tikzmark{se2b}m_5\tikzmark{se2e}\},\{\tikzmark{se3b}m_6\tikzmark{se3e}\},\{\tikzmark{se4b}m_7, m_8\tikzmark{se4e}\}\}
\]
}
\foreach[count=\s from 0] \col in
{red!90!black,yellow!80!black,green!90!black,cyan!80!black,blue!90!black} {%
\visible<+(2),8>{%
\tikz[remember picture,overlay,every node/.append style={common/rhl=\col}]{%
\foreach \i in {1,...,4} {%
\node[fit=(pic cs:s\i e\s b)(pic cs:s\i e\s e)]{};
}%
\node[fit=(pic cs:se\s b)(pic cs:se\s e)]{};
}%
}%
}%
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Nombre de PRNG nécessaires}
%{{{ frame "
\only<1>{\includegraphics{img/repeat/exp_0.pdf}}
\only<2>{\includegraphics{img/repeat/exp_1.pdf}}
\only<3>{\includegraphics{img/repeat/exp_2.pdf}}
%}}}
\end{frame}
%}}}