Gray Scott School

Gray Scott School

The Gray Scott School 2026 — a free high-performance computing school organized by LAPP (CNRS), followed at CINERI. Two weeks optimizing one reaction-diffusion simulation, from CPU to GPU.

June 22 – July 3, 2026 · Organized by LAPP (CNRS / Université Savoie Mont-Blanc, Annecy) with the CC-FR competence center (EuroCC France) · Free of charge, followed on site in Annecy, online, or at one of 18 satellite sites — including CINERI in Dakar, where this documentation was produced.

Overview

The Gray Scott School is a school on programming and optimization for heterogeneous architectures (CPU, GPU). It covers hardware characteristics, bottlenecks, and both generic and hardware-specific optimization techniques — each method presented in a basic then an advanced version, with its benefits and limits.

The teaching principle fits in one sentence: a single case study for the whole school. Each day takes the same simulation and optimizes it with a different technology, from the CPU core to the GPU. Results are comparable from one day to the next, and gains are measured — never assumed.

This section documents the nine days followed from CINERI: concepts, diagrams, hands-on work, measurements, video replays and official sources.

The Gray-Scott model

The case study is a Gray-Scott reaction-diffusion simulation, named after the chemists Peter Gray and Stephen Scott, who studied this autocatalytic system in the 1980s. Two chemical species U and V diffuse over a 2D grid and react: V consumes U (reaction U + 2V → 3V), U is replenished at a given feed rate, V is removed at a given kill rate. Depending on these two rates, the simulation produces Turing patterns — spots, stripes, mazes, structures that divide like cells.

This model is an ideal HPC case study:

  • the core of the computation is a 3×3 stencil (the discrete Laplacian) — the most common pattern in scientific computing, from weather models to physics equations;
  • it is memory-bound: performance is limited by memory, not compute — the most frequent and most instructive case;
  • the result is verifiable (numerical invariants) and visual (the patterns): a porting error is immediately apparent.

Organization

Two weeks, 29 sessions, 13 speakers (LAPP, IJCLab, Maison de la Simulation / CEA, LISN). Days alternate lectures and hands-on work, with a special session at the end of each day — the June 25 one was the CINERI presentation. The school is prepared year-round by the Gray Scott Thursdays, a series of technical webinars with public replays, and each day is streamed live on the LAPP YouTube channel.

Technologies covered

CategoryContent
LanguagesC++ 17/20/23, Fortran 2018, Python, CUDA, Rust, Julia
LibrariesKokkos, EVE, Kiwaku, NumPy, Numba, JAX, CuPy, cuPyNumeric, Thrust, TBB
Compilersg++, clang++, nvc++, gfortran, nvfortran
ProfilingValgrind, MAQAO, Perf, NSight, MALT, NumaProf
Environmentspixi, containers (Docker, Podman, Apptainer), clusters (MUST, Jean-Zay)

The method

  1. Measure before optimizing.
  2. Identify the limiting factorcompute-bound or memory-bound.
  3. Exploit the hardware — vectorization, multicore parallelism, GPU.

The nine days

DayTopic
Day 1 — FoundationsCPU, compilation, SIMD, concurrency, memory- vs compute-bound
Day 2 — C++ on CPUdata layout, vectorization, cache blocking, TBB
Day 3 — Fortran on CPUmodern Fortran, stencils, floating-point precision
Day 4 — Kokkos on CPUone source, many backends
Day 5 — Python on CPUNumPy, Numba, JAX
Day 6 — SIMD with EVE + GPU architectureexplicit, portable SIMD
Day 7 — Python on GPUCuPy, cuNumeric, JAX
Day 8 — Fortran on GPUdo concurrent, OpenACC, OpenMP target
Day 9 — Kokkos on GPUportable kernels on the accelerator

Official resources

Copyright © 2026