Gray Scott School
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
| Category | Content |
|---|---|
| Languages | C++ 17/20/23, Fortran 2018, Python, CUDA, Rust, Julia |
| Libraries | Kokkos, EVE, Kiwaku, NumPy, Numba, JAX, CuPy, cuPyNumeric, Thrust, TBB |
| Compilers | g++, clang++, nvc++, gfortran, nvfortran |
| Profiling | Valgrind, MAQAO, Perf, NSight, MALT, NumaProf |
| Environments | pixi, containers (Docker, Podman, Apptainer), clusters (MUST, Jean-Zay) |
The method
- Measure before optimizing.
- Identify the limiting factor — compute-bound or memory-bound.
- Exploit the hardware — vectorization, multicore parallelism, GPU.
The nine days
| Day | Topic |
|---|---|
| Day 1 — Foundations | CPU, compilation, SIMD, concurrency, memory- vs compute-bound |
| Day 2 — C++ on CPU | data layout, vectorization, cache blocking, TBB |
| Day 3 — Fortran on CPU | modern Fortran, stencils, floating-point precision |
| Day 4 — Kokkos on CPU | one source, many backends |
| Day 5 — Python on CPU | NumPy, Numba, JAX |
| Day 6 — SIMD with EVE + GPU architecture | explicit, portable SIMD |
| Day 7 — Python on GPU | CuPy, cuNumeric, JAX |
| Day 8 — Fortran on GPU | do concurrent, OpenACC, OpenMP target |
| Day 9 — Kokkos on GPU | portable kernels on the accelerator |
Official resources
- School website — program, speakers, infrastructure
- Reference course Performance with Stencil
- Gray Scott Thursdays replays · 2026 lives of the nine days
- School page at CC-FR