The Gray Scott School
The Gray Scott School
Field notes from a nine-day high-performance computing school at CINERI — optimizing one reaction-diffusion simulation from the CPU core to the GPU.
What this is
These are field notes from the Gray Scott School 2026 at CINERI, a nine-day school on high-performance computing. Every day takes the same program — a Gray-Scott reaction-diffusion simulation — and makes it run faster on more of the machine, from a single CPU core all the way to the GPU.
The subject never changes. What changes is how much of the hardware we learn to use.
The through-line
One method runs through all nine days, whatever the language or the accelerator:
- Measure before optimizing — never trust intuition before timing.
- Find the limiting factor — is the code compute-bound or memory-bound?
- Exploit the hardware — vectorization inside a core, parallelism across cores, then the 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 |
Held at CINERI, taught with the LAPP team. The reference course lives at cta-lapp.pages.in2p3.fr.