[{"data":1,"prerenderedAt":271},["ShallowReactive",2],{"navigation_docs_en":3,"-en-gray-scott-school":66,"-en-gray-scott-school-surround":268},[4,50,60],{"title":5,"path":6,"stem":7,"children":8},"The Gray Scott School","/en/gray-scott-school","en/1.gray-scott-school/01.index",[9,10,14,18,22,26,30,34,38,42,46],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"CINERI Presentation","/en/gray-scott-school/presentation-cineri","en/1.gray-scott-school/02.presentation-cineri",{"title":15,"path":16,"stem":17},"Day 1 — Foundations","/en/gray-scott-school/jour-1","en/1.gray-scott-school/03.jour-1",{"title":19,"path":20,"stem":21},"Day 2 — C++ on CPU","/en/gray-scott-school/jour-2","en/1.gray-scott-school/04.jour-2",{"title":23,"path":24,"stem":25},"Day 3 — Fortran on CPU","/en/gray-scott-school/jour-3","en/1.gray-scott-school/05.jour-3",{"title":27,"path":28,"stem":29},"Day 4 — Kokkos on CPU","/en/gray-scott-school/jour-4","en/1.gray-scott-school/06.jour-4",{"title":31,"path":32,"stem":33},"Day 5 — Python on CPU","/en/gray-scott-school/jour-5","en/1.gray-scott-school/07.jour-5",{"title":35,"path":36,"stem":37},"Day 6 — SIMD with EVE + GPU architecture","/en/gray-scott-school/jour-6","en/1.gray-scott-school/08.jour-6",{"title":39,"path":40,"stem":41},"Day 7 — Python on GPU","/en/gray-scott-school/jour-7","en/1.gray-scott-school/09.jour-7",{"title":43,"path":44,"stem":45},"Day 8 — Fortran on GPU","/en/gray-scott-school/jour-8","en/1.gray-scott-school/10.jour-8",{"title":47,"path":48,"stem":49},"Day 9 — Kokkos on GPU","/en/gray-scott-school/jour-9","en/1.gray-scott-school/11.jour-9",{"title":51,"path":52,"stem":53,"children":54},"Projects","/en/projets","en/2.projets/1.index",[55,56],{"title":51,"path":52,"stem":53},{"title":57,"path":58,"stem":59},"SenLand","/en/projets/senland","en/2.projets/2.senland",{"title":61,"path":62,"stem":63,"children":64},"About","/en/a-propos","en/3.a-propos/1.index",[65],{"title":61,"path":62,"stem":63},{"id":67,"title":5,"badge":68,"body":69,"category":68,"description":261,"extension":262,"links":68,"meta":263,"navigation":265,"path":6,"seo":266,"stem":7,"tags":68,"__hash__":267},"docs_en/en/1.gray-scott-school/01.index.md",null,{"type":70,"value":71,"toc":254},"minimark",[72,77,99,102,106,109,131,135,241],[73,74,76],"h2",{"id":75},"what-this-is","What this is",[78,79,80,81,85,86,89,90,93,94,98],"p",{},"These are field notes from the ",[82,83,84],"strong",{},"Gray Scott School 2026"," at ",[82,87,88],{},"CINERI",", a nine-day school on\n",[82,91,92],{},"high-performance computing",". Every day takes the ",[95,96,97],"em",{},"same"," program — a Gray-Scott\nreaction-diffusion simulation — and makes it run faster on more of the machine, from a single\nCPU core all the way to the GPU.",[78,100,101],{},"The subject never changes. What changes is how much of the hardware we learn to use.",[73,103,105],{"id":104},"the-through-line","The through-line",[78,107,108],{},"One method runs through all nine days, whatever the language or the accelerator:",[110,111,112,119,125],"ol",{},[113,114,115,118],"li",{},[82,116,117],{},"Measure"," before optimizing — never trust intuition before timing.",[113,120,121,124],{},[82,122,123],{},"Find the limiting factor"," — is the code compute-bound or memory-bound?",[113,126,127,130],{},[82,128,129],{},"Exploit the hardware"," — vectorization inside a core, parallelism across cores, then the GPU.",[73,132,134],{"id":133},"the-nine-days","The nine days",[136,137,138,151],"table",{},[139,140,141],"thead",{},[142,143,144,148],"tr",{},[145,146,147],"th",{},"Day",[145,149,150],{},"Topic",[152,153,154,165,174,183,192,201,210,219,232],"tbody",{},[142,155,156,162],{},[157,158,159],"td",{},[160,161,15],"a",{"href":16},[157,163,164],{},"CPU, compilation, SIMD, concurrency, memory- vs compute-bound",[142,166,167,171],{},[157,168,169],{},[160,170,19],{"href":20},[157,172,173],{},"data layout, vectorization, cache blocking, TBB",[142,175,176,180],{},[157,177,178],{},[160,179,23],{"href":24},[157,181,182],{},"modern Fortran, stencils, floating-point precision",[142,184,185,189],{},[157,186,187],{},[160,188,27],{"href":28},[157,190,191],{},"one source, many backends",[142,193,194,198],{},[157,195,196],{},[160,197,31],{"href":32},[157,199,200],{},"NumPy, Numba, JAX",[142,202,203,207],{},[157,204,205],{},[160,206,35],{"href":36},[157,208,209],{},"explicit portable SIMD",[142,211,212,216],{},[157,213,214],{},[160,215,39],{"href":40},[157,217,218],{},"CuPy, cuNumeric, JAX",[142,220,221,225],{},[157,222,223],{},[160,224,43],{"href":44},[157,226,227,231],{},[228,229,230],"code",{},"do concurrent",", OpenACC, OpenMP target",[142,233,234,238],{},[157,235,236],{},[160,237,47],{"href":48},[157,239,240],{},"portable kernels on the accelerator",[242,243,244],"blockquote",{},[78,245,246,247,253],{},"Held at CINERI, taught with the LAPP team. The reference course lives at\n",[160,248,252],{"href":249,"rel":250},"https://cta-lapp.pages.in2p3.fr/COURS/PerformanceWithStencil/",[251],"nofollow","cta-lapp.pages.in2p3.fr",".",{"title":255,"searchDepth":256,"depth":256,"links":257},"",2,[258,259,260],{"id":75,"depth":256,"text":76},{"id":104,"depth":256,"text":105},{"id":133,"depth":256,"text":134},"Field notes from a nine-day high-performance computing school at CINERI — optimizing one reaction-diffusion simulation from the CPU core to the GPU.","md",{"icon":264},"lucide:book-open",true,{"title":5,"description":261},"fz6FWqm8Rxi9WxV9ODKvP-4QjTpNY_4Q3kDphKcKrAA",[68,269],{"title":11,"path":12,"stem":13,"description":270,"children":-1},"The presentation of CINERI live to the whole Gray Scott School 2026 — special session of June 25, broadcast on the official live stream.",1783172490754]