science >> Wetenschap >  >> Elektronica

Voorbereiden van wetenschappelijke toepassingen voor exascale computing

Exascale-computers zullen worden gebruikt om problemen op te lossen in een breed scala aan wetenschappelijke toepassingen, inclusief om de levensduur van kleine modulaire kernreactoren te simuleren (links) en om de complexe relatie tussen 3D-printprocessen en materiaaleigenschappen te begrijpen (rechts). Krediet:Oak Ridge National Lab

Exascale-computers zullen naar verwachting binnenkort debuteren, waaronder Frontier bij de Oak Ridge Leadership Computing Facility (OLCF) van het Amerikaanse Department of Energy (DOE) en Aurora bij de Argonne Leadership Computing Facility (ALCF), zowel DOE Office of Science Gebruikersfaciliteiten, in 2021. Deze computersystemen van de volgende generatie zullen naar verwachting vijf tot tien keer sneller zijn dan de krachtigste supercomputers van vandaag. Deze prestatieverbetering stelt wetenschappers in staat om problemen aan te pakken die anders onoplosbaar zijn in termen van complexiteit en rekentijd.

Maar om zo'n hoog prestatieniveau te bereiken, zijn software-aanpassingen nodig. Bijvoorbeeld, OpenMP:de standaard applicatie-programmeerinterfaces voor parallel computergebruik met gedeeld geheugen, of het gebruik van meerdere processors om een ​​taak te voltooien - zal moeten evolueren om de gelaagdheid van verschillende herinneringen te ondersteunen, hardwareversnellers zoals grafische verwerkingseenheden (GPU's), verschillende exascale computerarchitecturen, en de nieuwste standaarden voor C++ en andere programmeertalen.

OpenMP evolueren naar exascale met het SOLLVE-project

In september 2016, het DOE Exascale Computing Project (ECP) financierde een softwareontwikkelingsproject genaamd SOLLVE (for Scaling OpenMP via Low-Level Virtual Machine for Exascale Performance and Portability) om te helpen bij deze overgang. Het SOLLVE-projectteam - geleid door DOE's Brookhaven National Laboratory en bestaande uit medewerkers van DOE's Argonne, Lawrence Livermore, en Oak Ridge National Labs, en Georgia Tech—heeft ontworpen, implementeren, en standaardisering van de belangrijkste OpenMP-functionaliteiten die ontwikkelaars van ECP-applicaties als belangrijk hebben aangemerkt.

Gedreven door SOLLVE en gesponsord door ECP, Het Computational Science Initiative (CSI) van Brookhaven Lab organiseerde van 29 april tot 2 mei een vierdaagse OpenMP-hackathon. gezamenlijk georganiseerd met Oak Ridge en IBM. De OpenMP hackathon is de laatste in een reeks hackathons aangeboden door CSI, inclusief die gericht op NVIDIA GPU's en Intel Xeon Phi veel-core processors.

"OpenMP ondergaat substantiële veranderingen om tegemoet te komen aan de vereisten van toekomstige exascale computersystemen, " zei lokale evenementencoördinator Martin Kong, een computationele wetenschapper in CSI's Computer Science and Mathematics Group en de Brookhaven Lab-vertegenwoordiger in de OpenMP Architecture Review Board, die toezicht houdt op de OpenMP-standaardspecificatie. "Het overdragen van wetenschappelijke codes naar de nieuwe exascale-hardware en -architecturen zal een grote uitdaging zijn. De belangrijkste motivatie van deze hackathon is applicatiebetrokkenheid - om dieper te communiceren met verschillende gebruikers, vooral die van DOE-labs, en hen bewust te maken van de veranderingen die ze mogen verwachten in OpenMP en hoe deze veranderingen hun wetenschappelijke toepassingen ten goede kunnen komen."

De Summit-supercomputer. Krediet:Oak Ridge National Lab

De basis leggen voor de overdraagbaarheid van applicatieprestaties

Computer- en domeinwetenschappers, code-ontwikkelaars, en computerhardware-experts uit Brookhaven, Argonne, Laurens Berkeley, Lawrence Livermore, Eiken Ridge, Georgië Tech, Universiteit van Indiana, Rijst Universiteit, Universiteit van Illinois in Urbana-Champaign, IBM, en de National Aeronautics and Space Administration (NASA) namen deel aan de hackathon. De acht teams werden begeleid door het nationale lab, Universiteit, en industriële mentoren die werden geselecteerd op basis van hun uitgebreide ervaring in het programmeren van GPU's, deelname aan de OpenMP Taalcommissie, en het uitvoeren van onderzoek en ontwikkeling in tools die de nieuwste OpenMP-specificaties ondersteunen.

Gedurende de week, de teams werkten aan het overzetten van hun wetenschappelijke toepassingen van centrale verwerkingseenheden (CPU's) naar GPU's en aan het optimaliseren ervan met behulp van de nieuwste OpenMP-versie (4.5+). Tussen hacksessies door, de teams hadden tutorials over verschillende geavanceerde OpenMP-functies, inclusief versnellingsprogrammering, profileringstools om prestaties te beoordelen, en applicatie-optimalisatiestrategieën.

Sommige teams gebruikten ook de nieuwste OpenMP-functionaliteiten om IBM Power9-CPU's te programmeren die zijn versneld met NDIVIA-GPU's. 'S Werelds snelste supercomputer - de Summit-supercomputer bij OLCF - is gebaseerd op deze nieuwe architectuur, met meer dan 9000 IBM Power9 CPU's en meer dan 27, 000 NVIDIA GPU's.

Stappen zetten in de richting van exascale

De aanvragen van de teams besloegen vele gebieden, met inbegrip van kernfysica en hoge-energiefysica, lasers en optica, materiaal kunde, autonome systemen, en vloeistofmechanica.

Een schema van het rooster voor kwantumchromodynamische berekeningen. De snijpunten op het rooster vertegenwoordigen quarkwaarden, terwijl de lijnen ertussen gluonwaarden vertegenwoordigen. Krediet:Brookhaven National Laboratory

Deelnemer David Wagner van het NASA Langley Research Center High Performance Computing Incubator en collega's Gabriele Jost en Daniel Kokron van het NASA Ames Research Center kwamen met een code om elasticiteit te simuleren. Hun doel bij de hackathon was het vergroten van single-instructie, multiple-data (SIMD) parallellisme - een type computergebruik waarbij meerdere processors dezelfde bewerking tegelijkertijd op veel gegevenspunten uitvoeren - en de snelheid optimaliseren waarmee gegevens kunnen worden gelezen van en opgeslagen in het geheugen.

"Wetenschappers bij NASA proberen te begrijpen hoe en waarom vliegtuig- en ruimtevaartuigmaterialen falen, " zei Wagner. "We moeten ervoor zorgen dat deze materialen duurzaam genoeg zijn om alle krachten te weerstaan ​​die bij normaal gebruik tijdens het gebruik aanwezig zijn. Bij de hackaton we werken aan een mini-app die representatief is voor de meest rekenintensieve delen van het grotere programma om te modelleren wat er fysiek gebeurt wanneer de materialen worden geladen, krom, en uitgerekt. Onze code heeft veel kleine formules die miljarden keren moeten worden herhaald. De uitdaging is om alle berekeningen heel snel uit te voeren."

Volgens Wagner een van de redenen waarom NASA nu aandringt op deze rekencapaciteit, is om de processen te begrijpen die worden gebruikt om additief vervaardigde (3D-geprinte) onderdelen te genereren en de verschillende materiaaleigenschappen van deze onderdelen, die steeds vaker in vliegtuigen worden gebruikt. Het kennen van deze informatie is belangrijk om de veiligheid, betrouwbaarheid, en duurzaamheid van de materialen gedurende hun operationele levensduur.

"De hackathon was voor ons een succes, " zei Wagner. "We hebben onze code ingesteld voor massale parallelle uitvoering en correct draaiend op GPU-hardware. We gaan door met debuggen en parallelle prestatieafstemming, omdat we verwachten binnenkort geschikte NASA-hardware en -software beschikbaar te hebben."

Een ander team volgde een vergelijkbare aanpak om OpenMP voor een klein deel van hun code te laten werken. een Lattice Quantum Chromodynamics (QCD) -code die centraal staat in een ECP-project genaamd Lattice QCD:Lattice Quantum Chromodynamics for Exascale. Lattice QCD is een numeriek raamwerk voor het simuleren van de sterke interacties tussen elementaire deeltjes, quarks en gluonen genaamd. Dergelijke simulaties zijn belangrijk voor veel hoge-energie- en kernfysica-problemen. Typische simulaties vereisen maandenlang draaien op supercomputers.

"We willen dat onze code op verschillende exascale-architecturen draait, " zei teamlid en computerwetenschapper Meifeng Lin, plaatsvervangend groepsleider van CSI's nieuwe Quantum Computing Group en lokale coördinator van eerdere hackathons. "Direct, de code draait op NVIDIA GPU's, maar aankomende exascale-computers zullen naar verwachting ten minste twee verschillende architecturen hebben. We hopen dat door het gebruik van OpenMP, die wordt ondersteund door grote hardwareleveranciers, we zullen onze code gemakkelijker kunnen overdragen naar deze opkomende platforms. We hebben de eerste twee dagen van de hackathon geprobeerd om OpenMP de code van de CPU naar de GPU over de hele bibliotheek te laten overdragen, zonder veel succes."

John Mellor-Crummey geeft een presentatie over de HPCToolkit, een geïntegreerde reeks tools voor het meten en analyseren van programmaprestaties op systemen variërend van desktops tot supercomputers. Krediet:Brookhaven National Laboratory

Mentor Lingda Li, een CSI-onderzoeksmedewerker en een lid van het SOLLVE-project, hielp Lin en collega-teamlid Chulwoo Jung, een natuurkundige in de High-Energy Theory Group van Brookhaven, met de OpenMP-offloading.

Hoewel het team OpenMP kon laten werken met een paar honderd regels code, de eerste prestaties waren slecht. Ze gebruikten verschillende tools voor prestatieprofilering om te bepalen wat de vertraging veroorzaakte. Met deze informatie, ze waren in staat fundamentele vooruitgang te boeken in hun algehele optimalisatiestrategie, inclusief het oplossen van problemen met betrekking tot de initiële GPU-offloading en het vereenvoudigen van datamapping.

Een van de tools voor profilering die beschikbaar waren voor teams tijdens de hackathon, was er een die is ontwikkeld door Rice University en University of Wisconsin.

"Onze tool meet de prestaties van GPU-versnelde codes, zowel op de host als de GPU, " zei John Mellor-Crummey, hoogleraar computerwetenschappen en elektrische en computertechniek aan de Rice University en de hoofdonderzoeker van het bijbehorende ECP-project HPCToolkit uitbreiden om codeprestaties op Exascale-platforms te meten en analyseren. "We hebben het deze week op verschillende simulatiecodes gebruikt om te kijken naar de relatieve prestaties van berekeningen en gegevensverplaatsing in en uit GPU's. We kunnen niet alleen zien hoe lang een code loopt, maar ook hoeveel instructies zijn uitgevoerd en of de uitvoering was op volle snelheid of tot stilstand gekomen, en als het vastloopt, waarom. We identificeerden ook mapping-problemen met de compilerinformatie die machinecode en broncode associeert."

Andere mentoren van IBM waren aanwezig om de teams te laten zien hoe ze IBM XL-compilers moesten gebruiken - die zijn ontworpen om de volledige kracht van IBM Power-processors te benutten - en hen te helpen bij eventuele problemen die ze tegenkwamen.

"Compilers zijn tools die wetenschappers gebruiken om hun wetenschappelijke software te vertalen in code die door hardware kan worden gelezen, door de grootste supercomputers ter wereld—Summit en Sierra [in Lawrence Livermore], " zei Doru Bercea, een onderzoeksmedewerker in de Advanced Compiler Technologies Group bij het IBM TJ Watson Research Center. "De hackathon biedt ons de mogelijkheid om beslissingen over het ontwerp van compilers te bespreken om OpenMP beter te laten werken voor wetenschappers."

QMCPack kan worden gebruikt om de grond- en aangeslagen toestandsenergieën van gelokaliseerde defecten in isolatoren en halfgeleiders te berekenen, bijvoorbeeld, in mangaan (Mn) 4+ -gedoteerde fosforen, die veelbelovende materialen zijn voor het verbeteren van de kleurkwaliteit en helderheid van witlicht-emitterende diodes. Krediet:Brookhaven National Laboratory

Volgens mentor Johannes Doerbert, een postdoctoraal onderzoeker bij ALCF, de applicaties die de teams naar de hackathon brachten, bevonden zich in verschillende stadia wat betreft hun gereedheid voor toekomstige computersystemen.

"Sommige teams hebben te maken met porteringsproblemen, sommigen worstelen met de compilers, en sommige hebben prestatieproblemen met applicaties, " legde Doerbert uit. "Als mentoren, we krijgen vragen van overal in dit grote spectrum."

Enkele van de andere wetenschappelijke toepassingen die teams hebben meegebracht, omvatten een code (pf3d) voor het simuleren van de interacties tussen lasers met hoge intensiteit en plasma (geïoniseerd gas) in experimenten in de National Ignition Facility van Lawrence Livermore, en een code voor het berekenen van de elektronische structuur van atomen, moleculen, en vaste stoffen (QMCPack, ook een ECP-project). Een ander ECP-team bracht een draagbare programmeeromgeving (RAJA) voor de programmeertaal C++.

"We ontwikkelen een abstractie op hoog niveau genaamd RAJA, zodat mensen alle hardware- of softwareframeworks kunnen gebruiken die beschikbaar zijn op de achterkant van hun computersystemen, " zei mentor Tom Scogland, een postdoctoraal onderzoeker in het Center for Applied Scientific Computing in Lawrence Livermore. "RAJA richt zich voornamelijk op OpenMP op de host en CUDA [een ander parallel computerprogrammeermodel] op de backend. Maar we willen dat RAJA werkt met andere programmeermodellen op de backend, inclusief OpenMP."

"Het thema van de hackathon was OpenMP 4.5+, een evoluerende en niet volledig volwassen versie, " legde Kong uit. "De teams vertrokken met een beter begrip van de nieuwe OpenMP-functies, kennis over de nieuwe tools die beschikbaar komen op Summit, en een stappenplan dat op de lange termijn moet worden gevolgd."

"Ik heb een aantal dingen geleerd over OpenMP 4.5, " zei pf3d-teamlid Steve Langer, een computerfysicus bij Lawrence Livermore. "Het grootste voordeel waren de discussies met mentoren en IBM-medewerkers. Ik weet nu hoe ik mijn OpenMP-offloadrichtlijnen moet verpakken om NVIDIA GPU's te gebruiken zonder tegen geheugenbeperkingen aan te lopen."