En illustration af indviklede strømningsstrukturer i turbulens fra en stor simulering udført ved hjælp af 1, 024 noder på topmødet. Den nederste højre ramme viser en zoom-ind-visning af et område med høj aktivitet. Kredit:Dave Pugmire og Mike Matheson, Oak Ridge National Laboratory
Turbulens, tilstanden af uordentlig flydende bevægelse, er et videnskabeligt puslespil af stor kompleksitet. Turbulens gennemsyrer mange anvendelser inden for videnskab og teknik, herunder forbrænding, transport af forurenende stoffer, vejrudsigt, astrofysik, og mere. En af udfordringerne for forskere, der simulerer turbulens, ligger i den brede vifte af skalaer, de skal fange for præcist at forstå fænomenet. Disse skalaer kan spænde over flere størrelsesordener og kan være svære at fange inden for begrænsningerne af de tilgængelige computerressourcer.
Højtydende computing kan klare denne udfordring, når den er parret med den rigtige videnskabelige kode; men simulering af turbulente strømme ved problemstørrelser ud over den nuværende teknologiske udvikling kræver nytænkning i samspil med top-of-the-line heterogene platforme.
Et hold ledet af P.K. Yeung, professor i rumfartsteknik og maskinteknik ved Georgia Institute of Technology, udfører direkte numeriske simuleringer (DNS) af turbulens ved hjælp af sit teams nye kode, GPU'er til ekstreme turbulenssimuleringer (GESTS). DNS kan nøjagtigt fange de detaljer, der opstår fra en lang række skalaer. Tidligere i år, holdet udviklede en ny algoritme optimeret til IBM AC922 Summit-supercomputeren på Oak Ridge Leadership Computing Facility (OLCF). Med den nye algoritme, holdet nåede en præstation på mindre end 15 sekunders vægur-tid pr. tidstrin for mere end 6 billioner gitterpunkter i rummet - en ny verdensrekord, der overgår den hidtidige teknikkens stade inden for området for problemets størrelse.
De simuleringer, som holdet udfører på topmødet, forventes at afklare vigtige spørgsmål vedrørende hurtigt kværnende turbulente væskestrømme, som vil have en direkte indflydelse på modelleringen af reagerende strømme i motorer og andre typer fremdriftssystemer.
GESTS er en computational fluid dynamics-kode i Center for Accelerated Application Readiness ved OLCF, en US Department of Energy (DOE) Office of Science User Facility ved DOE's Oak Ridge National Laboratory. I hjertet af GESTS er en grundlæggende matematisk algoritme, der beregner i stor skala, distribuerede hurtige Fourier-transformationer (FFT'er) i tre rumlige retninger.
En FFT er en matematisk algoritme, der beregner konverteringen af et signal (eller et felt) fra dets oprindelige tids- eller rumdomæne til en repræsentation i frekvens- (eller bølgetal) rummet - og omvendt for den inverse transformation. Yeung anvender i vid udstrækning et stort antal FFT'er til nøjagtigt at løse den fundamentale partielle differentialligning for væskedynamik, Navier-Stokes ligningen, ved hjælp af en tilgang kendt i matematik og videnskabelig databehandling som "pseudospektrale metoder."
De fleste simuleringer, der bruger massiv CPU-baseret parallelisme, vil opdele et 3-D-løsningsdomæne, eller rumfanget, hvor en væskestrøm beregnes, langs to retninger ind i mange lange "databokse, " eller "blyanter." Men, da Yeungs team mødtes til et OLCF GPU Hackathon i slutningen af 2017 med mentor David Appelhans, en forskningsmedarbejder hos IBM, gruppen udtænkte en innovativ idé. De ville kombinere to forskellige tilgange til at tackle problemet. De ville først opdele 3D-domænet i én retning, danner en række data-"plader" på Summits CPU'er med stor hukommelse, paralleliser derefter yderligere inden for hver plade ved hjælp af Summits GPU'er.
Holdet identificerede de mest tidskrævende dele af en basis CPU-kode og satte sig for at designe en ny algoritme, der ville reducere omkostningerne ved disse operationer, skubbe grænserne for den størst mulige problemstørrelse, og drage fordel af de unikke datacentrerede egenskaber ved Summit, verdens mest kraftfulde og smarteste supercomputer til åben videnskab.
"Vi designede denne algoritme til at være en hierarkisk parallelisme for at sikre, at den ville fungere godt på et hierarkisk system, " sagde Appelhans. "Vi sætter op til to plader på en knude, men fordi hver node har 6 GPU'er, vi brød hver plade op og satte de individuelle stykker på forskellige GPU'er."
I fortiden, blyanter kan have været fordelt mellem mange noder, men teamets metode gør brug af Summits on-node-kommunikation og dens store mængde CPU-hukommelse til at passe hele dataplader på enkelte noder.
"Vi havde oprindeligt planer om at køre koden med hukommelsen på GPU'en, hvilket ville have begrænset os til mindre problemstørrelser, " sagde Yeung. "Men, på OLCF GPU Hackathon, vi indså, at NVLink-forbindelsen mellem CPU'en og GPU'en er så hurtig, at vi faktisk kunne maksimere brugen af de 512 gigabyte CPU-hukommelse pr. node."
Erkendelsen fik holdet til at tilpasse nogle af de vigtigste dele af koden (kerner) til GPU-databevægelse og asynkron behandling, som tillader beregning og databevægelse at ske samtidigt. De innovative kerner transformerede koden og gjorde det muligt for teamet at løse problemer meget større end nogensinde før i en meget hurtigere hastighed end nogensinde før.
Holdets succes viste, at selv store, kommunikationsdominerede applikationer kan drage stor fordel af verdens mest kraftfulde supercomputer, når kodeudviklere integrerer den heterogene arkitektur i algoritmedesignet.
Sammensmeltning til succes
En af nøgleingredienserne til holdets succes var en perfekt pasform mellem Georgia Tech-teamets langvarige domænevidenskabelige ekspertise og Appelhans' innovative tænkning og dybe viden om maskinen.
Også afgørende for præstationen var OLCF's tidlige adgang Ascent og Summitdev-systemer og en million-node-timers allokering på Summit leveret af Innovative Novel and Computational Impact on Theory and Experiment (INCITE)-programmet, i fællesskab styret af Argonne og Oak Ridge Leadership Computing Facilities, og Summit Early Science Program i 2019.
Oscar Hernandez, værktøjsudvikler hos OLCF, hjalp teamet med at navigere i udfordringer gennem hele projektet. En sådan udfordring var at finde ud af, hvordan man kører hver enkelt parallel proces (der overholder standarden for message passing interface [MPI]) på CPU'en i forbindelse med flere GPU'er. Typisk, en eller flere MPI-processer er bundet til en enkelt GPU, men teamet fandt ud af, at brug af flere GPU'er pr. MPI-proces gør det muligt for MPI-processerne at sende og modtage et mindre antal større beskeder, end holdet oprindeligt havde planlagt. Ved at bruge OpenMP-programmeringsmodellen, Hernandez hjalp teamet med at reducere antallet af MPI-opgaver, forbedre kodens kommunikationsydelse og derved føre til yderligere speedups.
Kiran Ravikumar, en Georgia Tech doktorand på projektet, vil præsentere detaljer om algoritmen i det tekniske program for 2019 Supercomputing Conference, SC19.
Holdet planlægger at bruge koden til at gøre yderligere indhug i turbulensens mysterier; de vil også introducere andre fysiske fænomener såsom oceanisk blanding og elektromagnetiske felter i koden i fremtiden.
"Denne kode, og dens fremtidige versioner, vil give spændende muligheder for store fremskridt inden for videnskaben om turbulens, med generel indsigt, der vedrører turbulent blanding i mange naturlige og konstruerede miljøer, " sagde Yeung.