315 lines
8.6 KiB
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}
|
|
%}}}
|