\documentclass{beamer}

\usepackage{beamerthemesplit}
\usepackage[french]{babel}
\usepackage[utf8]{inputenc}

\title{\textsc{PaStiX} : out of core}
\author{Xavier Lacoste}
\date{\today}

\begin{document}

\frame{\titlepage}

\section[Outline]{}
\frame{\tableofcontents}

\section{Introduction}

\subsection{Qu'est ce que l'out of core}

\begin{frame}
  \frametitle{Qu'est ce que l'out of core}
  \begin{itemize}
  \item Utilisé lorsque les données traitées dépassent la mémoire vive
    de la machine. 
  \item Gestion par l'algorithme des entrées/sorties de swap sur
    disque. 
  \item Inconvénient : le calcul est lent.
  \item Avantage : le calcul peut être effectué.
  \end{itemize}
\end{frame}

\subsection{Pourquoi l'out of core ?}
\begin{frame}
  
  \frametitle{Pourquoi l'out of core ?}
  
  \begin{itemize}
  \item Lancement de cas de taille importante sur des machines à
    mémoire restreinte. 
  \item Le traitement par bloc colonne dans \textsc{PaStiX} s'adapte
    bien à une approche out of core. 
  \end{itemize}
\end{frame}

\subsection{Principe}
\begin{frame}
  \frametitle{Principe}
  
  \begin{itemize}
  \item Chargement et déchargement des blocks colonnes en fonction des besoins.
  \item Appels systèmes read/write.      
  \item Ecriture dans un dossier \texttt{pastix\_coef\_ID} dans /tmp.      
  \item Plusieurs versions : 
    \begin{itemize}
    \item Plus simple : le thread de calcul se charge de ses entrées/sorties.
    \item Plus performante : Une paire de threads s'occupe de gérer les entrées/sorties.
    \item Encore plus performante : Une paire de threads par contrôleur disque.
    \end{itemize}
  \end{itemize}
\end{frame}

\subsection{Utilisation}
\begin{frame}
  \frametitle{Utilisation}
  
  \begin{itemize}
  \item Compilation avec -DOOC
  \item utilisation de deux nouveaux paramètres de iparm :
    \begin{description}
    \item[iparm 8 :] limite mémoire imposée (légèrement inférieure à la mémoire réelle.
      \item[iparm 9 :] Nombre de couple de threads pour les entrées/sorties.
    \end{description}
  \end{itemize}
\end{frame}

\subsection{\'Etat d'avancement}

\begin{frame}
  \frametitle{\'Etat d'avancement}
  
  \begin{itemize}
  \item Version Calcul multithread avec entrées sortie assurées par le thread de calcul : OK.
  \item Version Monothread avec entrées sorties sur un thread externe : OK.
  \item Version Multithread entrées sorties externes : OK.
  \item Tester la version MPI, avec plusieurs matrices, sur de gros cas.
  \item Ajouter la possibilité d'avoir plusieurs couples de threads
    d'entrées sorties (pour plusieurs controleurs disques par
    exemple). 
  \item Ajouter la gestion des contributions fanin\_ftgt.
  \end{itemize}
\end{frame}

\end{document}
