Gray Scott Reloaded

Europe/Paris
Auditorium Marcel Vivargent (Annecy / LAPP)

Auditorium Marcel Vivargent

Annecy / LAPP

Karim Azoum (Teratec), Marie Lhande Pincemin, Maud Coppel (LAPP), Pierre Aubert (LAPP)
Description

Le LAPP d’Annecy en collaboration avec le Centre de Compétence CC-FR organisent la seconde édition de la Gray Scott School du 1er au 12 juillet 2024. Cette école d'été sur le HPC, au format unique et entièrement gratuite, sera dédiée à la programmation et l'optimisation sur Architectures Hétérogènes.

Voir la vidéo de présentation.

L'école traitera de l’optimisation des calculs sur différents types de matériels (CPU, GPU), en présentant leurs caractéristiques respectives, architectures et goulots d’étranglements. Il portera d’une part sur les méthodes d’optimisation génériques applicables à tout type de matériel, et d’autre part sur les différentes bibliothèques, technologies et langages dont on dispose pour atteindre la meilleure performance possible. Idéalement, la performance crête de la machine. 

  • Matériels envisagés: CPU, GPU.
  • Langages envisagés : C++17, C++20, CUDA, Fortran, Rust, Python
  • Bibliothèques envisagées : SYCL, Eve, Numpy, cunumerics, legate, Jax, Thrust.
  • Compilateurs envisagés : G++, Clang++, nvc++, gfortran, nvfortran, dpc++.
  • Outils de Profilage : Valgrind, Maqao, Perf, NSight, Malt et NumaProf

Toutes les méthodes seront illustrées sur des exemples simples, comme des produits de Hadamard, des réductions, des calculs de barycentres et des produits de matrice afin d'être appliquées à un problème unique : la simulation d'une réaction de Gray Scott. Ce problème est suffisamment simple pour être compris rapidement et suffisamment complexe pour que les compilateurs aient des difficultés à l’optimiser sans aide. Chaque méthode sera déclinée en version simple, utilisant des options par défaut, et une ou plusieurs versions avancées, qui permettront de discuter et quantifier leurs avantages et inconvénients.

Cette formation intensive ou la carte pourra être suivie :

  • en présentiel au LAPP d'Annecy avec les formateurs - dont une journée BootStrap (résolution de vos problématiques de programmation/optimisation)
  • en distanciel sur différents sites satellites en France (+ d’infos à venir)
  • en distanciel, à la carte, via un streaming live sur Youtube

 

Tous les sujets de cette formation sont de plus abordés en exclusivité par les formateurs lors d’une série de webinaires, les Jeudis Gray Scott, de janvier à mai 2024 :

16 webinaires techniques autour du HPC (Architecture CPU, et GPU, précision calcul, profilage mémoire, C++, Rust, Sycl, Fortran, NVC++, Cuda, Eve, Numpy, Python, NVfortran et OpenACC, cunumerics, Legate,Tensorflow . Accessibles en direct et en replay :  cliquez sur l’onglet « Jeudis Gray Scott » pour voir la programmation et nous rejoindre !

 

Le Laboratoire d’Annecy de Physique des Particules (LAPP) est une Unité Mixte de Recherche (UMR5814) dépendant du CNRS et de l’Université Savoie Mont Blanc.

Registration
0 - Liste d'attente - Ecole Gray Scott en présentiel à Annecy
1 - Inscriptions en présentiel (à Annecy au LAPP)
    • 8:30 AM 9:00 AM
      Enregistrement / Café d'accueil 30m
    • 9:00 AM 9:30 AM
      Plantage du décor: Introduction
    • 9:30 AM 10:30 AM
      Architecture CPU
      • 9:30 AM
        Architecture Matériel CPU 30m

        Fonctionnement et architecture d'un CPU :
        - Caches
        - Registres
        - ALU
        - etc

        Speaker: Hadrien Grasland (IJCLab)
      • 10:00 AM
        Vectorisation VS Parallélisation ? 30m
        • Qu'est ce que la vectorisation ?
        • Dépendances arrières
        • Alignement des données
        • Importance du format de données utilisé (si il est lent, c'est foutu)
        • etc

        • Qu'est ce que la parallélisation ?

        • Memory Bound / CPU Bound ?

        Speaker: Vincent Lafage (CNRS)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Compilation : Du software au hardware
      • 11:00 AM
        Qu'est ce que la compilation ? 1h
        • Personne ne veut programmer en binaire
        • Pont entre le binaire et une méthode plus simple pour exprimer ce que l'on veut
        • Étapes de la compilation
        • Représentation intermédiaire (qu'est ce que c'est, et pourquoi ça aide beaucoup)
        • Passes de compilation
        • GCC/G++
        • CLang/CLang++
        • Options de compilation (différentes passes activées à différent moment)
        • Description des options les plus utilisées (-O2, -O3, -Wall, -Werror, -ftree-vectorize, etc)
        • Pourquoi on se fait avoir avec les options de compilation par défaut
        • Pont avec les compilateurs Just In Time et Almost In Time
        Speaker: Pierre Aubert (LAPP)
    • 12:00 PM 2:00 PM
      Pause Déjeuner 2h

      C'est pas le tout mais on a faim.

    • 2:00 PM 3:30 PM
      Profilage

      Savoir quelle fonction met trente ans à s'exécuter

      • 2:00 PM
        Théorie et outils de Profilage 1h 30m
        • Déduire des choses des compteurs hardware
        • Comment être certain que l'on mesure bien ce que l'on pense que l'on mesure ?
        • Perf
        • Valgrind
        • Maqao

        Avec des petits exemples

        Speaker: Hadrien Grasland (IJCLab)
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 5:00 PM
      Précision du calcul

      Quitte à avoir un résultat faux autant aller vite

      • 4:00 PM
        Précision numérique 30m
        • En calcul entier tout va bien
        • Arnaque des scientifiques, les réels n'existent pas
        • En calcul flottant, ça se corse (float64, float32, float16, float8, TF16, BF32)
        • Comment on s'en sort
        • Précision et Performances
        Speaker: Vincent Lafage (CNRS)
      • 4:30 PM
        Évaluer la précision d'un calcul 30m
        • À la main (calcul dans un sens et dans l'autre)
        • Verrou
        • Cadena
        Speaker: Vincent Lafage (CNRS)
    • 5:00 PM 6:30 PM
      Tests unitaires et performance
    • 7:00 PM 8:30 PM
      Buffet d'accueil (apéro dinatoire) 1h 30m
    • 9:00 AM 10:30 AM
      C++ 17/20/23 sur CPU 1h 30m

      Tout est dans le titre

      Speaker: Pierre Aubert (LAPP)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      C++ 17/20/23 sur CPU 1h

      Tout est dans le titre

      Speaker: Pierre Aubert (LAPP)
    • 12:00 PM 2:00 PM
      Pause Déjeuner 2h
    • 2:00 PM 3:30 PM
      C++17 avec Sycl sur CPU 1h 30m

      Tout est dans le titre

      Speaker: David Chamont (IJCLab - IN2P3 - CNRS)
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 6:00 PM
      C++17 avec Sycl sur CPU 2h

      Tout est dans le titre

      Speaker: David Chamont (IJCLab - IN2P3 - CNRS)
    • 6:30 PM 8:00 PM
      Repas en plein air 1h 30m
    • 9:00 AM 10:30 AM
      Fortran 2018 sur CPU 1h 30m

      Tout est dans le titre

      Speaker: Vincent Lafage (CNRS)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Fortran 2018 sur CPU 1h

      Tout est dans le titre

      Speaker: Vincent Lafage (CNRS)
    • 12:00 PM 2:00 PM
      Pause Déjeuner 2h
    • 2:00 PM 3:00 PM
      Fortran 2018 sur CPU 1h

      Tout est dans le titre

      Speaker: Vincent Lafage (CNRS)
    • 3:00 PM 4:00 PM
      Présentation Outils: Précision
      • 3:00 PM
        Évaluation de la précision numérique avec Cadena 1h
        Speaker: David CHAMONT (IJCLab - IN2P3 - CNRS)
    • 4:00 PM 4:30 PM
      Pause café 30m
    • 4:30 PM 6:00 PM
      Présentation Outils: Profilage
    • 6:30 PM 8:00 PM
      Repas en plein air 1h 30m
    • 9:00 AM 10:30 AM
      Rust sur CPU 1h 30m

      Tout est dans le titre

      Speaker: Hadrien Grasland (IJCLab)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Rust sur CPU 1h

      Tout est dans le titre

      Speaker: Hadrien Grasland (IJCLab)
    • 12:00 PM 2:00 PM
      Pause Déjeuner 2h
    • 2:00 PM 3:30 PM
      Rust sur CPU 1h 30m

      Tout est dans le titre

      Speaker: Hadrien Grasland (IJCLab)
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 6:00 PM
      Rust sur CPU 2h

      Tout est dans le titre

      Speaker: Hadrien Grasland (IJCLab)
    • 9:00 AM 10:00 AM
      Calculer avec Python sur CPU 1h
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 10:00 AM 10:30 AM
      Pause café 30m
    • 10:30 AM 12:00 PM
      Calculer avec Python sur CPU 1h 30m
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 12:00 PM 2:00 PM
      Pause déjeuner 2h
    • 2:00 PM 3:30 PM
      Calculer avec Python sur CPU 1h 30m
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 6:00 PM
      Calculer avec Python sur CPU 2h
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 10:00 AM 12:00 PM
      Petits jeux de plage mais potentiellement sans la plage
      • 10:00 AM
        Table ronde avec les formateurs 2h
    • 12:00 PM 2:00 PM
      Pause déjeuner 2h
    • 2:00 PM 5:00 PM
      Social Event
    • 9:00 AM 6:00 PM
      Journée libre 9h
    • 9:00 AM 10:30 AM
      Architecture GPU: Architecture GPU et calcul massivement parallèle
      • 9:00 AM
        Architecture GPU et calcul massivement parallèle 40m
        • Fonctionnement d'un GPU
        • Streaming Multiprocessor
        • Mémoire Partagée
        • Mémoire Globale
      • 9:40 AM
        C++17/20:23 sur GPU avec NVC++ 50m

        Tout est dans le titre

        Speaker: Pierre Aubert (LAPP)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Architecture GPU: NVC++
      • 11:00 AM
        C++17/20:23 sur GPU avec NVC++ 1h
        Speaker: Dr Pierre Aubert (LAPP)
    • 12:00 PM 2:00 PM
      Pause déjeuner 2h
    • 2:00 PM 3:30 PM
      Calcul en C++ 20 avec Eve 1h 30m
      Speaker: Dr Joël Falcou (LISN - CODE RECKONS)
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 6:00 PM
      Calcul en C++ 20 avec Eve 2h
      Speaker: Dr Joël Falcou (LISN - CODE RECKONS)
    • 9:00 AM 10:30 AM
      Calculer avec Python sur GPU 1h 30m
      • cunumerics
      • legate
        Optionnels :
      • tensorflow
      • pytorch
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Calculer avec Python sur GPU 1h
      • cunumerics
      • legate
        Optionnels :
      • tensorflow
      • pytorch
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 12:00 PM 2:00 PM
      Pause déjeuner 2h
    • 2:00 PM 3:30 PM
      Calculer avec Python sur GPU 1h 30m
      • cunumerics
      • legate
        Optionnels :
      • tensorflow
      • pytorch
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 6:00 PM
      Calculer avec Python sur GPU 2h
      • cunumerics
      • legate
        Optionnels :
      • tensorflow
      • pytorch
      Speakers: Alice Faure (LUPM), Mr Jean-Marc Colley (CNRS/IN2P3/LPNHE)
    • 9:00 AM 10:30 AM
      Sycl C++17 sur GPU 1h 30m
      Speaker: David CHAMONT (IJCLab - IN2P3 - CNRS)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Sycl C++17 sur GPU 1h
      Speaker: David CHAMONT (IJCLab - IN2P3 - CNRS)
    • 12:00 PM 2:00 PM
      Pause déjeuner 2h
    • 2:00 PM 4:00 PM
      Rust sur GPU avec Vulkan 2h

      Tout est dans le titre

      Speaker: Hadrien Grasland (IJCLab)
    • 4:00 PM 4:30 PM
      Pause café 30m
    • 4:30 PM 6:00 PM
      Rust sur GPU avec Vulkan 1h 30m

      Tout est dans le titre

      Speaker: Hadrien Grasland (IJCLab)
    • 9:00 AM 10:30 AM
      Fortran 2018 sur GPU 1h 30m

      Avec NVFortran et OpenACC

      Speaker: Vincent Lafage (CNRS)
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Fortran 2018 sur GPU 1h

      Avec NVFortran et OpenACC

      Speaker: Vincent Lafage (CNRS)
    • 12:00 PM 2:00 PM
      Pause déjeuner 2h
    • 2:00 PM 3:30 PM
      Retour d'expériences
      • 2:00 PM
        Diffusion de particules dans la galaxie avec nvc++ 30m
        Speaker: Mr Yoann Génolini (Lapth)
      • 2:30 PM
        Optimisation de la reconstruction de trace dans Dune en Python 30m
        Speaker: Laura Zambelli (LAPP)
      • 3:00 PM
        Portage Python de l'analyse CTA sur CPU et GPU 30m
        Speaker: Vincent Pollet
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 6:00 PM
      Séminaire
      • 4:00 PM
        Impact du système sur les performances des applications 2h
        Speaker: Sébastien Valat (CERN)
    • 9:00 AM 10:30 AM
      Bootstrap
    • 10:30 AM 11:00 AM
      Pause café 30m
    • 11:00 AM 12:00 PM
      Bootstrap
    • 12:00 PM 2:00 PM
      Pause déjeuner 2h
    • 2:00 PM 3:30 PM
      Bootstrap
    • 3:30 PM 4:00 PM
      Pause café 30m
    • 4:00 PM 5:45 PM
      Bootstrap
    • 5:45 PM 6:00 PM
      Fin de l'école 15m

      Maintenant tirez vous

      Speaker: Pierre Aubert (LAPP)