#+TITLE: Writing a Reproducible Article #+AUTHOR: Luka Stanisic and Arnaud Legrand #+LaTeX_HEADER: \institute{MESCAL team, LIG, Univ. of Grenoble} #+DATE: COMPAS, 22.04.2014 #+LANGUAGE: en #+TAGS: noexport(n) #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+startup: beamer #+LaTeX_CLASS: beamer #+LaTeX_CLASS_OPTIONS: [11pt,xcolor=dvipsnames,presentation] #+OPTIONS: H:3 num:t toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t #+LATEX_HEADER: \usedescriptionitemofwidthas{bl} #+LATEX_HEADER: \usepackage{ifthen,figlatex,amsmath,amstext,xspace} #+LATEX_HEADER: \usepackage{boxedminipage,xspace,multicol} #+LATEX_HEADER: \usepackage{subfigure} #+LATEX_HEADER: \usetheme{Madrid} #+LATEX_HEADER: \usecolortheme[named=BrickRed]{structure} #+LATEX_HEADER: \setbeamertemplate{footline}[frame number] #+LATEX_HEADER: \setbeamertemplate{navigation symbols}{} #+LaTeX: \urlstyle{sf} #+LaTeX: \let\alert=\structure #+LaTeX: \let\epsilon=\varepsilon #+LaTeX: \let\leq=\leqslant #+LaTeX: \let\geq=\geqslant #+LaTeX: \def\qrm{\text{QR\_mumps}\xspace} #+LaTeX: \def\qrms{\text{qrm\_starpu}} #+BEGIN_LaTeX \newcommand{\bottomcite}[1]{\fbox{\vbox{\footnotesize #1}}} #+END_LaTeX * Intro *** Context **** :B_block: :PROPERTIES: :BEAMER_env: block :END: - HPC applications nowadays use both multi-core CPUs and GPUs - Managing efficiently computation execution and data transfer is extremely complex - Need for portable performance $\leadsto$ *Runtime* system # based on the task programming paradigm **** :B_block: :PROPERTIES: :BEAMER_env: block :BEAMER_ACT: <2-> :END: Many configuration parameters: 1. Task granularity 2. Scheduling strategies 3. Application structure Emerging challenges: 1. Finding optimal combination of parameters for a given machine 2. Evaluate configurations on a wide variety of platforms 3. Quickly identify performance issues (e.g., bottlenecks) Possible solution: *Simulation* *** Our proposal **** StarPU Dynamic runtime for hybrid architectures. StarPU execution consists in scheduling a graph of tasks with data dependencies on the different computing resources **** Simgrid Versatile simulator for distributed systems **** Implementation: :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: Implementation: - StarPU applications and runtime are *emulated* - All operations related to thread synchronization, actual computations and data transfer are *simulated* - Control part of StarPU is modified to dynamically inject computation and communication tasks into the simulator - StarPU calibration and platform description is used by Simgrid *** Results #+BEGIN_LaTeX \begin{overlayarea}{\linewidth}{8cm} \begin{center} \only<1>{ \vspace{.7cm} \includegraphics<1>[width=.95\linewidth]{figures_presentation/recap_all-crop.pdf} } \includegraphics<2>[width=.95\linewidth]{figures_presentation/comparing_paje2-crop.png} \end{center} #+END_LaTeX #+LaTeX: \only<3>{ #+LaTeX: \vspace{.3cm} **** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: - Works fine *now*, but coming to this point was not easy - We had to do many iterations of: 1. Running *complex* *beta* code on *several* not always *dedicated* machines 2. Comparing with simulations, *debugging*, *understanding*, *remodeling* and going back to step 1 until not satisfied \medskip **** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: - With good results, we decided to make a reproducible article 1. From outside it looks like any other pdf paper 2. From inside ... **** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: \medskip \medskip I will try to convince you that our article is not only *reproducible* but also *readable* and *understandable*! #+BEGIN_CENTER http://dx.doi.org/10.6084/m9.figshare.928338 #+END_CENTER #+LaTeX: }\end{overlayarea} *** Reproducible Research #+BEGIN_LaTeX \begin{overlayarea}{\linewidth}{0cm} \vspace{-4cm} \hbox{\hspace{-.1\linewidth}\includegraphics[width=1.2\linewidth,height=9cm]{iceberg/iceberg.pdf}} \only<2>{\vspace{-5.5cm} \begin{center} \begin{minipage}{.75\linewidth} \begin{block}{} \smallskip Requires a \textbf{daily usage of a labbook} (org, git/svn, ...) \smallskip \end{block} \end{minipage} \end{center} } \end{overlayarea} #+END_LaTeX * Emacs demonstration :noexport: ** Reproducible Article: - [ ] Doc structure - [ ] Download data - [ ] Parse/Filter/Convert - [ ] Load R - [ ] Change figures - [ ] Export to .pdf ** Reproducible Experimentation - [ ] Data+metadata - [ ] Labbook