Exascale computere vil blive brugt til at løse problemer i en bred vifte af videnskabelige applikationer, herunder at simulere levetiden af små modulære atomreaktorer (til venstre) og at forstå det komplekse forhold mellem 3-D printprocesser og materialeegenskaber (højre). Kredit:Oak Ridge National Lab
Exascale-computere forventes snart at debutere, herunder Frontier ved det amerikanske energiministeriums (DOE) Oak Ridge Leadership Computing Facility (OLCF) og Aurora ved Argonne Leadership Computing Facility (ALCF), både DOE Office of Science brugerfaciliteter, i 2021. Disse næste generations computersystemer forventes at overgå hastigheden på nutidens mest kraftfulde supercomputere med fem til ti gange. Dette præstationsboost vil gøre det muligt for forskere at tackle problemer, der ellers er uløselige med hensyn til deres kompleksitet og beregningstid.
Men at nå et så højt niveau af ydeevne vil kræve softwaretilpasninger. For eksempel, OpenMP - standard applikationsprogrammeringsgrænseflader til parallel databehandling med delt hukommelse, eller brugen af flere processorer til at fuldføre en opgave - vil skulle udvikle sig for at understøtte lagdelingen af forskellige minder, hardwareacceleratorer såsom grafikprocessorenheder (GPU'er), forskellige exascale computerarkitekturer, og de nyeste standarder for C++ og andre programmeringssprog.
Udvikling af OpenMP mod exascale med SOLLVE-projektet
I september 2016 DOE Exascale Computing Project (ECP) finansierede et softwareudviklingsprojekt kaldet SOLLVE (til skalering af OpenMP via Low-Level Virtual Machine for Exascale Performance and Portability) for at hjælpe med denne overgang. SOLLVE-projektteamet - ledet af DOE's Brookhaven National Laboratory og bestående af samarbejdspartnere fra DOE's Argonne, Lawrence Livermore, og Oak Ridge National Labs, og Georgia Tech - har designet, implementerer, og standardisering af centrale OpenMP-funktioner, som ECP-applikationsudviklere har identificeret som vigtige.
Drevet af SOLLVE og sponsoreret af ECP, Brookhaven Labs Computational Science Initiative (CSI) var vært for et fire-dages OpenMP hackathon fra 29. april til 2. maj, organiseret i fællesskab med Oak Ridge og IBM. OpenMP hackathon er det seneste i en række af hackathon tilbudt af CSI, inklusive dem, der fokuserer på NVIDIA GPU'er og Intel Xeon Phi mange-kerne processorer.
"OpenMP gennemgår væsentlige ændringer for at imødekomme kravene til kommende exascale computersystemer, " sagde den lokale begivenhedskoordinator Martin Kong, en beregningsforsker i CSI's Computer Science and Mathematics Group og Brookhaven Lab-repræsentanten i OpenMP Architecture Review Board, som fører tilsyn med OpenMP-standardspecifikationen. "Portering af videnskabelige koder til den nye exascale hardware og arkitekturer vil være en stor udfordring. Hovedmotivationen for dette hackathon er applikationsengagement - at interagere dybere med forskellige brugere, især dem fra DOE-laboratorier, og gøre dem opmærksomme på de ændringer, de bør forvente i OpenMP, og hvordan disse ændringer kan gavne deres videnskabelige applikationer."
The Summit supercomputer. Kredit:Oak Ridge National Lab
Lægger grundlaget for applikationsydelses-portabilitet
Beregnings- og domæneforskere, kode udviklere, og computerhardwareeksperter fra Brookhaven, Argonne, Lawrence Berkeley, Lawrence Livermore, Oak Ridge, Georgia Tech, Indiana University, Rice University, University of Illinois i Urbana-Champaign, IBM, og National Aeronautics and Space Administration (NASA) deltog i hackathonet. De otte hold blev guidet af nationalt laboratorium, universitet, og branchementorer, der blev udvalgt på baggrund af deres omfattende erfaring med programmering af GPU'er, deltagelse i OpenMP Language Committee, og udføre forskning og udvikling i værktøjer, der understøtter de seneste OpenMP-specifikationer.
Hele ugen, holdene arbejdede på at overføre deres videnskabelige applikationer fra centrale processorenheder (CPU) til GPU'er og optimere dem ved hjælp af den seneste OpenMP-version (4.5+). Ind imellem hacking-sessioner, holdene havde tutorials om forskellige avancerede OpenMP-funktioner, herunder accelerator programmering, profileringsværktøjer til at vurdere ydeevne, og applikationsoptimeringsstrategier.
Nogle teams brugte også de seneste OpenMP-funktioner til at programmere IBM Power9 CPU'er accelereret med NDIVIA GPU'er. Verdens hurtigste supercomputer - Summit supercomputeren på OLCF - er baseret på denne nye arkitektur, med mere end 9000 IBM Power9 CPU'er og mere end 27, 000 NVIDIA GPU'er.
Tage skridt mod exascale
Holdenes applikationer spændte over mange områder, herunder atom- og højenergifysik, lasere og optik, materialevidenskab, autonome systemer, og væskemekanik.
En skematisk af gitteret til kvantekromodynamiske beregninger. Skæringspunkterne på gitteret repræsenterer kvarkværdier, mens linjerne mellem dem repræsenterer gluonværdier. Kredit:Brookhaven National Laboratory
Deltager David Wagner fra NASA Langley Research Center High Performance Computing Incubator og kollegerne Gabriele Jost og Daniel Kokron fra NASA Ames Research Center kom med en kode til simulering af elasticitet. Deres mål ved hackathon var at øge enkelt-instruktion, multiple-data (SIMD) parallelisme - en type computerbehandling, hvor flere processorer udfører den samme operation på mange datapunkter samtidigt - og optimerer den hastighed, hvormed data kan læses fra og lagres i hukommelsen.
"Forskere ved NASA forsøger at forstå, hvordan og hvorfor fly- og rumfartøjsmaterialer fejler, " sagde Wagner. "Vi er nødt til at sikre, at disse materialer er holdbare nok til at modstå alle de kræfter, der er til stede ved normal brug under service. Ved hackathon, vi arbejder på en mini-app, der er repræsentativ for de mest beregningsintensive dele af det større program til at modellere, hvad der sker fysisk, når materialerne indlæses, bøjet, og strakt. Vores kode har masser af små formler, der skal køre milliarder af gange. Udfordringen er at udføre alle beregningerne rigtig hurtigt."
Ifølge Wagner, en af grundene til, at NASA presser på for denne beregningsevne nu, er at forstå de processer, der bruges til at generere additivt fremstillede (3-D-printede) dele og de forskellige materialeegenskaber af disse dele, som i stigende grad bliver brugt i fly. At kende disse oplysninger er vigtigt for at sikre sikkerheden, pålidelighed, og materialernes holdbarhed over deres driftslevetid.
"Hackathon var en succes for os, " sagde Wagner. "Vi fik vores kode sat op til massivt parallel eksekvering og kører korrekt på GPU hardware. Vi fortsætter med fejlfinding og parallel justering af ydeevne, da vi forventer at have passende NASA hardware og software tilgængelig snart."
Et andet team tog en lignende tilgang i forsøget på at få OpenMP til at arbejde for en lille del af deres kode, en lattice quantum chromodynamik (QCD) kode, der er i centrum af et ECP-projekt kaldet Lattice QCD:Lattice Quantum Chromodynamik for Exascale. Gitter QCD er en numerisk ramme til at simulere de stærke vekselvirkninger mellem elementære partikler kaldet kvarker og gluoner. Sådanne simuleringer er vigtige for mange højenergi- og kernefysiske problemer. Typiske simuleringer kræver måneders drift på supercomputere.
"Vi vil gerne have vores kode til at køre på forskellige exascale-arkitekturer, " sagde teammedlem og beregningsforsker Meifeng Lin, stedfortrædende gruppeleder for CSI's nye Quantum Computing Group og lokal koordinator af tidligere hackathons. "Lige nu, koden kører på NVIDIA GPU'er, men kommende exascale-computere forventes at have mindst to forskellige arkitekturer. Vi håber, at ved at bruge OpenMP, som understøttes af større hardwareleverandører, vi vil lettere kunne portere vores kode til disse nye platforme. Vi brugte de første to dage af hackathonet på at prøve at få OpenMP til at overføre kode fra CPU til GPU på tværs af hele biblioteket, uden den store succes."
John Mellor-Crummey holder en præsentation om HPCToolkit, en integreret suite af værktøjer til måling og analyse af programydelse på systemer lige fra desktops til supercomputere. Kredit:Brookhaven National Laboratory
Mentor Lingda Li, en CSI-forskningsmedarbejder og medlem af SOLLVE-projektet, hjalp Lin og teammedlem Chulwoo Jung, en fysiker i Brookhaven's High-Energy Theory Group, med OpenMP-aflæsningen.
Selvom holdet var i stand til at få OpenMP til at arbejde med et par hundrede linjer kode, dens oprindelige ydeevne var dårlig. De brugte forskellige præstationsprofileringsværktøjer til at bestemme, hvad der forårsagede afmatningen. Med disse oplysninger, de var i stand til at gøre grundlæggende fremskridt i deres overordnede optimeringsstrategi, herunder løsning af problemer relateret til indledende GPU-aflæsning og forenkling af datakortlægning.
Blandt de profileringsværktøjer, der er tilgængelige for teams ved hackathonet, var et udviklet af Rice University og University of Wisconsin.
"Vores værktøj måler ydeevnen af GPU-accelererede koder både på værten og GPU'en, " sagde John Mellor-Crummey, professor i datalogi og elektro- og computerteknik ved Rice University og hovedforsker på det tilsvarende ECP-projekt Extending HPCToolkit to Measure and Analyze Code Performance on Exascale Platforms. "Vi har brugt det på adskillige simuleringskoder i denne uge for at se på den relative ydeevne af beregning og databevægelse ind og ud af GPU'er. Vi kan ikke kun fortælle, hvor længe en kode kører, men også hvor mange instruktioner der blev udført, og om henrettelsen var i fuld fart eller gået i stå, og hvis det går i stå, hvorfor. Vi har også identificeret kortlægningsproblemer med compilerinformationen, der forbinder maskinkode og kildekode."
Andre mentorer fra IBM var til stede for at vise holdene, hvordan man bruger IBM XL-kompilere – som er designet til at udnytte den fulde kraft fra IBM Power-processorer – og hjælpe dem igennem ethvert problem, de stødte på.
"Compilere er værktøjer, som videnskabsmænd bruger til at oversætte deres videnskabelige software til kode, der kan læses af hardware, af de største supercomputere i verden – Summit og Sierra [hos Lawrence Livermore], " sagde Doru Bercea, en forskningsmedarbejder i Advanced Compiler Technologies Group på IBM TJ Watson Research Center. "Hackathonet giver os mulighed for at diskutere kompileringsdesignbeslutninger for at få OpenMP til at fungere bedre for videnskabsmænd."
QMCPack kan bruges til at beregne jord- og exciterede energier af lokaliserede defekter i isolatorer og halvledere - f.eks. i mangan (Mn) 4+ -dopet fosfor, som er lovende materialer til at forbedre farvekvaliteten og lysstyrken af hvide lysdioder. Kredit:Brookhaven National Laboratory
Ifølge mentor Johannes Doerfert, en postdoc ved ALCF, de applikationer, holdene bragte til hackathonet, var på forskellige stadier med hensyn til deres parathed til kommende computersystemer.
"Nogle hold står over for porteringsproblemer, nogle kæmper med kompilatorerne, og nogle har problemer med applikationens ydeevne, " forklarede Doerfert. "Som mentorer, vi modtager spørgsmål fra hvor som helst i dette store spektrum."
Nogle af de andre videnskabelige applikationer, som teams bragte, inkluderer en kode (pf3d) til simulering af interaktionerne mellem højintensitetslasere og plasma (ioniseret gas) i eksperimenter ved Lawrence Livermores National Ignition Facility, og en kode til at beregne den elektroniske struktur af atomer, molekyler, og faste stoffer (QMCPack, også et ECP-projekt). Et andet ECP-hold bragte et bærbart programmeringsmiljø (RAJA) til programmeringssproget C++.
"Vi er ved at udvikle en abstraktion på højt niveau kaldet RAJA, så folk kan bruge hvilken som helst hardware- eller softwareramme, der er tilgængelig på bagenden af deres computersystemer, " sagde mentor Tom Scogland, en postdoc ved Center for Applied Scientific Computing ved Lawrence Livermore. "RAJA retter sig primært mod OpenMP på værten og CUDA [en anden parallel computing-programmeringsmodel] på backend. Men vi ønsker, at RAJA skal arbejde med andre programmeringsmodeller på backend, inklusive OpenMP."
"Temaet for hackathonet var OpenMP 4.5+, en udviklende og ikke helt moden version, " forklarede Kong. "Holdene tog afsted med en bedre forståelse af de nye OpenMP-funktioner, viden om de nye værktøjer, der bliver tilgængelige på Summit, og en køreplan at følge på lang sigt."
"Jeg lærte en række ting om OpenMP 4.5, " sagde pf3d-teammedlem Steve Langer, en beregningsfysiker hos Lawrence Livermore. "Den største fordel var diskussionerne med mentorer og IBM-medarbejdere. Jeg ved nu, hvordan jeg skal pakke mine OpenMP-offload-direktiver til at bruge NVIDIA GPU'er uden at støde på hukommelsesbegrænsninger."