Programme

 Nous aborderons 4 thèmes durant cette école répartis sur 4 jours de formation :

  • Thème 1 : Arithmétique flottante
  • Thème 2 : Mesurer la précision
  • Thème 3 : Recherche reproductible et calcul numérique
  • Thème 4 : Le calcul parallèle et le HPC sont-ils compatibles avec les enjeux de la recherche reproductible ?

 

Lundi 15 mai 2017

T1 (Arithmétique flottante)

12h30-14h : Accueil et repas

14h-15h30 : [Cours] Savoir utiliser les flottants pour ce qu'ils sont  

Intervenant : Florent de Dinechin (CITILab, INSA-Lyon)

support

Les grandeurs réelles sont le plus souvent manipulés dans l'ordinateur sous la forme de nombres en virgule flottante. Mais les flottants ne sont qu'une approximation des réels: les identifier aveuglément aux réels vous expose à des bugs qui peuvent aller bien au delà de la petite imprécision numérique. A contrario, les flottants ne sont pas responsables de tous les problèmes numériques: il y a bien d'autres sources d'approximation dans les programmes. Ce cours survolera ces différentes questions. Nous apprendrons aussi à maîtriser les différentes couches qui composent l'environnement flottant: matériel, système d'exploitation, langage, et compilateur.

15h30-16h : Pause

16h-18h : [TP] sensibilisation aux enjeux de l’arithmétique flottante    

Intervenants :Florent de Dinechin (CITILab, INSA-Lyon)

support

code

Mardi 16 mai 2017

T2 (Mesurer la précision)

9h-10h : [Cours] Arithmétique stochastique    

Intervenant : Fabienne Jezequel (LIP6)

supports

Nous décrivons l'Arithmétique Stochastique qui permet d'estimer les erreurs d'arrondi commises lors des simulations numériques. Celle-ci consiste à exécuter un programme plusieurs fois en utilisant un mode d'arrondi aléatoire, ce qui permet d'estimer le nombre de chiffres exacts des résultats. Nous présentons les outils liés à l'Arithmétique Stochastique, en particulier la bibliothèque CADNA qui peut être utilisée pour la validation numérique de programmes séquentiels ou parallèles. Nous montrons que l'Arithmétique Stochastique peut aussi estimer la reproductiblité numérique des codes de calcul.

10h-10h30 : Pause

10h30-12h30 : [TP] Arithmétique stochastique

Intervenant :   Fabienne Jezequel (LIP6)

12h30-14h : Repas

14h-15h : [Cours] Arithmétique d’intervalles

Intervenant :Nathalie Revol (LIP)

support

Ce cours montrera comment l’arithmétique par intervalles permet de majorer les erreurs d’arrondi dues à une succession de calculs en arithmétique flottante.

Après avoir défini comment effectuer des opérations sur des intervalles, puis comment implanter ces opérations en utilisant l’arithmétique flottante, nous mettrons en avant sa propriété d’encadrer les erreurs d’arrondi, mais aussi les difficultés que l’on peut rencontrer pour obtenir des encadrements fins. L’accent sera mis sur l’utilisation de l’arithmétique par intervalles pour étudier la qualité numérique d’un code : nous garderons en tête l’avertissement de W. Kahan sur la futilité d’une utilisation irréfléchie de l’arithmétique par intervalles dans cette optique.

Nous terminerons par un survol de quelques bibliothèques et des variantes de l’arithmétique par intervalles qui les sous-tendent.

15h-15h30 : Pause

15h30-17h30 : [TP] Arithmétique d’intervalles

Intervenant :  Nathalie Revol (LIP)

TP

Mercredi 17 mai 2017

T2 (Mesurer la précision)

et

T3 (Recherche reproductible et calcul numérique)

9h-10h :  [Cours] Verrou: l'arithmétique stochastique sans recompilation

Intervenant :  François Fevotte (EDF)

supports

10h-10h30 : Pause

10h30-12h30 :  [TP] Verrou

Intervenant : François Fevotte (EDF)

12h30-14h : Repas

14h-15h : [Cours] Les enjeux de la recherche reproductible

Intervenant : Arnaud Legrand (LIG)

support

La reproductibilité d'expériences et l'analyse par d'autres font partie des fondements de la science moderne. Pourtant, la description des protocoles expérimentaux, des environnements logiciels et des analyses est souvent lacunaire et ne permet que rarement à une tierce personne de reproduire les résultats publiés. Ce manque de rigueur et de mise à disposition des informations alliés à la complexité croissante du processus scientifique sont devenus une des premières causes de rétractation d'articles dans des journaux, aussi prestigieux soient-ils, et finissent par semer le doute dans l'esprit du grand public sur la crédibilité des contributions de la communauté scientifique. Le terme "science ouverte" (par analogie au terme de logiciel libre) désigne le mouvement à l'oeuvre pour rendre les résultats de recherche et l'ensemble des données accessibles à tout citoyen et ainsi répondre aux demandes d'une société de plus en plus exigeante en terme de transparence. La recherche reproductible recouvre l'ensemble des aspects techniques et sociaux du processus de recherche scientifique et des améliorations méthodologiques permettant d'y parvenir. Dans cet exposé, je présenterai ces mouvements et leurs enjeux techniques et sociaux, les aspects à prendre en compte ainsi que certaines ébauches de solutions. Je conclurai avec une présentation rapide des défis informatiques liés à a recherche reproductible et qui risquent d'être particulièrement critiques dans les années à venir.

15h-15h45 : [Cours] Préservation d’un protocole de calcul

Intervenant : Konrad Hinsen (CBM)

support

Un protocole de calcul est un algorithme de très haut niveau qui est souvent partiellement executée en mode interactif. Pour assurer la reproductibilité, il faut conserver une trace complète et précise de ce qui a été fait. Je présenterai quelques approches et outils qui se sont montrés utiles dans ce contexte: notebooks (Jupyter), workflows, capture d'exécution (Sumatra, ActivePapers), etc.

15h45-16h15 : Pause

16h15-17h15 : [TP] : Reproduction de résultats d’un article (1re partie)

Intervenant : Konrad Hinsen (CBM)

code / article

La revue ReScience publie des réplications d'articles pour lesquels le code source d'origine est disponible. Pour chaque réplication, deux personnes ont vérifié que le code est complet, fonctionne, et donne les résultats identiques ou proches à l'article d'origine. Dans cette séance, nous allons étudier une telle réplication publiée, refaire tous les calculs, et vérifier qu'elle sont conformes aux attentes.

17h15-18h : [Cours] Préservation d’environnements de calcul

Intervenant : Cédric Clerget (Mésocentre de Calcul de Franche-Comté)

support

Une des contraintes de la Recherche Reproductible impose la conservation de l'environnement d'exécution au niveau de la pile logiciel, impliquant les compilateurs ainsi que les bibliothèques systèmes et numériques. Dans un contexte de conservation d'environnement d'exécution logiciel quelque soit les ressources matérielles utilisées, les conteneurs s'imposent comme les candidats idéaux, permettant de créer et d'isoler complètement un environnement logiciel sans perte de performance à l'instar des machines virtuelles. Dans ce cadre, les solutions de conteneurs Docker et Singularity seront étudiées et comparées. 

Jeudi 18 mai 2017

T3 (Recherche reproductible et calcul numérique)

et

T4 (Le calcul parallèle et le HPC sont-ils compatibles avec les enjeux de la recherche reproductible ?)

9h-10h30 : [TP] Reproduction de résultats d’un article (2e partie)

Intervenant :  Konrad Hinsen(CBM)

support

Nous tentons de reproduire un calcul publié en 2013 en utilisant ActivePapers. Comme dans la première partie, nous commençons par une comparaison visuelle des figures PDF. Mais ici nous avons aussi accès aux résultats détaillées binaires, ce qui permet une comparaison plus fine. Les curieux peuvent aussi regarder l'article publié sur la base de ces données.

10h30-11h : Pause

11h-12h30 : [TP] Reproduction de résultats d’un article (3e partie)

Intervenant :  Loïc Gouarin (LMO) et Cédric Clerget (Mésocentre de Calcul de Franche-Comté)

supports

Comme vous le verrez dans la session précédente, il n'est pas toujours évident de refaire les calculs d'un article même si nous disposons du code source. L'idée de cette session est de voir si nous pouvons nous servir des nouvelles technologies autour des conteneurs (comme Docker ou Singularity) afin de fournir un environnement stable pour le code de calcul de l'article. Ceci afin de s'affranchir des problèmes liés à l'exécution sur différents OS ou à l'utilisation de versions diférentes de logiciels tiers. Nous nous intéresserons à la mise en place d'un tel environnement pour un des articles de ReScience vu précédemment à l'aide de Docker et un cas d'un calcul parallèle en utilisant Singularity.

12h30-14h : Repas

14h-15h30 :  [Cours] Comment retrouver la reproductibilité numérique dans un code élément finis d’hydrodynamique

Intervenant :  Philippe Langlois (LIRMM - UPVD)

Support

La perte par l'arithmétique flottante de propriétés mathématiques comme l’associativité ou la distributivité, est problématique dans le calcul parallèle, dont l'efficacité s’appuie sur le non-déterminisme de certains traitements, comme par exemple la réduction. Ainsi, deux exécutions d'un code donné pour les mêmes entrées peuvent conduire à des résultats différents, ce qui rend difficile le débuggage et remêt en question la confiance dans ces résultats. Nous étudierons deux cas d'une telle perte de reproductibilité numérique dans un contexte HPC, et montrerons plusieurs approches pour retrouver cette reproductibilité.

15h30-16h : Pause

16h-17h30 :  [TP] Les sources de non-reproductibilité numérique en HPC

Intervenants :  Philippe Langlois et David Parello (LIRMM - UPVD)

TP

Vendredi 19 mai 2017

T4 (Le calcul parallèle et le HPC sont-ils compatibles avec les enjeux de la recherche reproductible ?)

9h-10h30 :  [Cours] Comment concilier reproductibilité numérique et performance : le cas des BLAS

Intervenant :  Philippe Langlois (LIRMM - UPVD)

10h30-11h : Pause

11h-12h30 :  [TP] Les premières solutions pour la reproductibilité numérique en HPC

Intervenants : Philippe Langlois et David Parello (LIRMM - UPVD)

TP

Support

12h30-14h :
Repas/départ

 

Personnes connectées : 1