Gray Scott School
22 juin – 3 juillet 2026 · Organisée par le LAPP (CNRS / Université Savoie Mont-Blanc, Annecy) avec le centre de compétence CC-FR (EuroCC France) · Gratuite, suivie sur place à Annecy, en ligne, ou dans l'un des 18 sites satellites — dont la CINERI à Dakar, où cette documentation a été produite.
Présentation
La Gray Scott School est une école de programmation et d'optimisation sur architectures hétérogènes (CPU, GPU). Elle couvre les caractéristiques du matériel, ses goulets d'étranglement, et les techniques d'optimisation génériques comme spécifiques — chaque méthode étant présentée en version de base puis avancée, avec ses avantages et ses limites.
Le principe pédagogique tient en une phrase : un seul cas d'étude pour toute l'école. Chaque journée reprend la même simulation et l'optimise avec une technologie différente, du cœur CPU au GPU. Les résultats sont comparables d'un jour à l'autre, et les gains mesurés — jamais supposés.
Cette section documente les neuf jours suivis depuis la CINERI : concepts, schémas, travaux pratiques, mesures, replays vidéo et sources officielles.
Le modèle de Gray-Scott
Le cas d'étude est une simulation de réaction-diffusion de Gray-Scott, du nom des chimistes Peter Gray et Stephen Scott qui ont étudié ce système autocatalytique dans les années 1980. Deux espèces chimiques U et V diffusent sur une grille 2D et réagissent : V consomme U (réaction U + 2V → 3V), U est réalimentée à un taux d'injection donné, V est éliminée à un taux d'extinction donné. Selon ces deux taux, la simulation produit des motifs de Turing — taches, rayures, labyrinthes, structures qui se divisent comme des cellules.
Ce modèle est un cas d'étude idéal pour le HPC :
- le cœur du calcul est un stencil 3×3 (le Laplacien discret) — le motif le plus répandu du calcul scientifique, des modèles météo aux équations de la physique ;
- il est memory-bound : ce qui limite la performance est la mémoire, pas le calcul — le cas le plus fréquent et le plus instructif ;
- le résultat est vérifiable (invariants numériques) et visuel (les motifs) : une erreur de portage se voit immédiatement.
L'organisation
Deux semaines, 29 sessions, 13 intervenants (LAPP, IJCLab, Maison de la Simulation / CEA, LISN). Les journées alternent cours et travaux pratiques, avec une session spéciale en fin de journée — celle du 25 juin était la présentation de la CINERI. L'école est préparée toute l'année par les Gray Scott Thursdays, une série de webinaires techniques dont les replays sont publics, et chaque journée est retransmise en direct sur la chaîne YouTube du LAPP.
Les technologies couvertes
| Catégorie | Contenu |
|---|---|
| Langages | C++ 17/20/23, Fortran 2018, Python, CUDA, Rust, Julia |
| Bibliothèques | Kokkos, EVE, Kiwaku, NumPy, Numba, JAX, CuPy, cuPyNumeric, Thrust, TBB |
| Compilateurs | g++, clang++, nvc++, gfortran, nvfortran |
| Profilage | Valgrind, MAQAO, Perf, NSight, MALT, NumaProf |
| Environnements | pixi, conteneurs (Docker, Podman, Apptainer), clusters (MUST, Jean-Zay) |
La méthode
- Mesurer avant d'optimiser.
- Identifier le facteur limitant — compute-bound ou memory-bound.
- Exploiter le matériel — vectorisation, parallélisme multicœur, GPU.
Les neuf jours
| Jour | Sujet |
|---|---|
| Jour 1 — Fondations | CPU, compilation, SIMD, concurrence, memory- vs compute-bound |
| Jour 2 — C++ sur CPU | data layout, vectorisation, blocking cache, TBB |
| Jour 3 — Fortran sur CPU | Fortran moderne, stencils, précision flottante |
| Jour 4 — Kokkos sur CPU | une source, plusieurs backends |
| Jour 5 — Python sur CPU | NumPy, Numba, JAX |
| Jour 6 — SIMD avec EVE + architecture GPU | SIMD explicite et portable |
| Jour 7 — Python sur GPU | CuPy, cuNumeric, JAX |
| Jour 8 — Fortran sur GPU | do concurrent, OpenACC, OpenMP target |
| Jour 9 — Kokkos sur GPU | noyaux portables sur l'accélérateur |
Ressources officielles
- Site de l'école — programme, intervenants, infrastructure
- Cours de référence Performance with Stencil
- Replays des Gray Scott Thursdays · lives 2026 des neuf journées
- Page de l'école chez CC-FR