defense/src/defense/2_alsk/0_alsk.tex

155 lines
3.9 KiB
TeX

\subsection{Squelettes algorithmiques}
%{{{
\begin{frame}{Concept}
%{{{ frame "
\begin{itemize}
\item Motifs d'exécution parallèle
\item Composition
\item<3>[$\to$] \graspels
\end{itemize}
\vspace{-4ex}
\begin{overprint}
\onslide+<2>
\fig{alsk/forkjoin}
\onslide+<3>
\vspace{-4ex}
\begin{columns}
\begin{column}{.2\paperwidth}
\vspace*{2ex}
\center Serial\vspace{-6ex}
\fig{alsk/seq}
\end{column}
\begin{column}{.5\paperwidth}
\vspace*{2ex}
\center FarmSel\vspace{-6ex}
\fig{alsk/farmsel}
\end{column}
\end{columns}
\end{overprint}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{\graspels}
%{{{ frame "
\fig{alsk/graspels}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Composition}
%{{{ frame "
\begin{columns}
\begin{column}{.33\paperwidth}
\fig{alsk/grasp}
\end{column}
\begin{column}{.66\paperwidth}
\only<1-4>{
\begin{itemize}[<alert@+(1)>]
\item Muscles\visible<2->{~: fonctions \og domaine \fg{}}
\item Structure\visible<3->{~: motifs d'exécution}
\item Liens\visible<4->{~: flux de données}
\end{itemize}
\vspace{1cm}
\alg{alsk/grasp}%
\visible<3>{%
\tikz[overlay,colStruct]{%
\fill[rounded corners,opacity=.2] (9mm,23.5mm) rectangle +(33mm,4.25mm);%
\draw[decorate,decoration={brace,amplitude=4pt}] (3mm,5mm) -- +(0mm,27mm);%
\draw[decorate,decoration={brace,amplitude=3pt}] (9mm,9.5mm) -- +(0mm,18mm);%
\draw[decorate,decoration={brace,amplitude=2pt}] (15mm,14.75mm) -- +(0mm,8mm);%
}%
}%
}
\end{column}
\end{columns}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Structure}
%{{{ frame "
\begin{columns}
\begin{column}{.33\paperwidth}
\fig{alsk/grasp_struct}
\end{column}
\begin{column}{.62\paperwidth}
\only<2>{\setminted{highlightcolor=colStruct!30,highlightlines={5,10}}}
\only<3>{\setminted{highlightcolor=colMuscle!30,highlightlines={6-8,9}}}
\only<4>{\setminted{highlightcolor=colStruct!30,highlightlines={6,8}}}
\only<5>{\setminted{highlightcolor=colMuscle!30,highlightlines={7}}}
\lst{alsk/grasp_struct}
\end{column}
\begin{column}{.04\paperwidth}\end{column}
\end{columns}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Liens}
%{{{ frame "
\begin{columns}
\begin{column}{.33\paperwidth}
\fig{alsk/grasp_links}
\end{column}
\begin{column}{.62\paperwidth}
\colorletonly<2>{colFSr}{colLinkOut} \colorletonly<2>{colFSp0}{colLinkIn}
\colorletonly<3>{colFSp0}{colLinkIn} \colorletonly<3>{colSp0}{colLinkIn}
\colorletonly<4>{colSp0}{colLinkIn} \colorletonly<4>{colCHp0}{colLinkIn}
\colorletonly<5>{colCHr}{colLinkOut} \colorletonly<5>{colLSp0}{colLinkIn}
\colorletonly<6>{colSr}{colLinkOut} \colorletonly<6>{colLSr}{colLinkOut}
\colorletonly<7>{colSr}{colLinkOut} \colorletonly<7>{colSelp}{colLinkIn}
\colorletonly<8>{colFSr}{colLinkOut} \colorletonly<8>{colSelr}{colLinkOut}
\colorletonly<9>{colCHp1}{colLinkCtx} \colorletonly<9>{colLSp1}{colLinkCtx}
\begin{itemize}
\item[\texttt{P<i>}] paramètre d'indice \texttt{i}
\item[\texttt{R<i>}] résultat d'indice \texttt{i}
\item[\texttt{RNG}] générateur de nombres pseudo-aléatoires
\end{itemize}
\lst{alsk/grasp_links}
\end{column}
\begin{column}{.04\paperwidth}\end{column}
\end{columns}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Corps : instanciation d'un squelette}
%{{{ frame "
\texttt{SkelEls} $=$ \texttt{SkelElsStruct} $+$ \texttt{SkelElsLinks}
\bigskip
\only<2>{\setminted{highlightlines={2},highlightcolor=colStruct!30}}
\only<3>{\setminted{highlightlines={3},highlightcolor=colStruct!30}}
\lstvisible<1->{alsk/elsbody}
\lstvisible<4->{alsk/graspbody}
%}}}
\end{frame}
%}}}
%{{{
\begin{frame}{Exécution}
%{{{ frame "
\only<1>{\setminted{lastline={1}}}
\only<2>{\setminted{lastline={5}}}
\only<3>{\setminted{lastline={7}}}
\only<4>{\setminted{lastline={9}}}
\vbox to 4cm {
\lst{alsk/graspexec}
}
%}}}
\end{frame}
%}}}