Gray Scott School

Gray Scott School

La Gray Scott School 2026 — école gratuite de calcul haute performance organisée par le LAPP (CNRS), suivie à la CINERI. Deux semaines pour optimiser une simulation de réaction-diffusion, du CPU au GPU.

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égorieContenu
LangagesC++ 17/20/23, Fortran 2018, Python, CUDA, Rust, Julia
BibliothèquesKokkos, EVE, Kiwaku, NumPy, Numba, JAX, CuPy, cuPyNumeric, Thrust, TBB
Compilateursg++, clang++, nvc++, gfortran, nvfortran
ProfilageValgrind, MAQAO, Perf, NSight, MALT, NumaProf
Environnementspixi, conteneurs (Docker, Podman, Apptainer), clusters (MUST, Jean-Zay)

La méthode

  1. Mesurer avant d'optimiser.
  2. Identifier le facteur limitantcompute-bound ou memory-bound.
  3. Exploiter le matériel — vectorisation, parallélisme multicœur, GPU.

Les neuf jours

JourSujet
Jour 1 — FondationsCPU, compilation, SIMD, concurrence, memory- vs compute-bound
Jour 2 — C++ sur CPUdata layout, vectorisation, blocking cache, TBB
Jour 3 — Fortran sur CPUFortran moderne, stencils, précision flottante
Jour 4 — Kokkos sur CPUune source, plusieurs backends
Jour 5 — Python sur CPUNumPy, Numba, JAX
Jour 6 — SIMD avec EVE + architecture GPUSIMD explicite et portable
Jour 7 — Python sur GPUCuPy, cuNumeric, JAX
Jour 8 — Fortran sur GPUdo concurrent, OpenACC, OpenMP target
Jour 9 — Kokkos sur GPUnoyaux portables sur l'accélérateur

Ressources officielles

Copyright © 2026