Sunita Chandrasekaran, en adjunkt i computer- og informationsvidenskab, designer rammer til at tilpasse kode til stadigt stærkere computersystemer. Hun arbejder med komplekse mønstre kendt som bølgefronter, som er afbilledet i baggrunden af dette billede. Kredit:Joy Smoker
Verdens hurtigste supercomputer kan nu yde 200, 000 billioner beregninger i sekundet, og adskillige virksomheder og offentlige agenturer rundt om i verden konkurrerer om at bygge en maskine, der vil have computerkraft til at simulere netværk på størrelse med den menneskelige hjerne. Denne ekstremt kraftfulde hardware kræver ekstremt kraftfuld software, så eksisterende softwarekode skal løbende opdateres for at følge med.
Sunita Chandrasekaran, en assisterende professor i computer- og informationsvidenskab ved University of Delaware, passer perfekt til denne udfordring. Under en ny bevilling fra National Science Foundation, hun designer rammer for at tilpasse kode til stadig stærkere systemer. Hun arbejder med komplekse mønstre kendt som bølgefronter, som almindeligvis findes i videnskabelige koder, der bruges til at analysere strømmen af neutroner i en atomreaktor, udtrække mønstre fra biomedicinske data eller forudsige atmosfæriske mønstre.
Chandrasekaran er ekspert i parallel programmering - skriver softwarekode, der kan køre samtidigt på mange multi-core processorer. Parallel programmering er en stadig vigtigere disciplin inden for datalogi, efterhånden som flere og flere universiteter og virksomheder bruger kraftfulde supercomputere til at analysere brede datamængder, fra videnskabelige resultater til forbrugeradfærdsindsigt og mere.
Chandrasekaran kigger på videnskabelige applikationer for at se, hvordan de blev skrevet, hvordan de har præsteret på forældede arkitekturer, hvilken slags programmeringsmodeller er blevet brugt, og hvilke udfordringer der er opstået.
"Det meste af tiden er programmeringsmodellerne skabt i et bredt træk, " sagde hun. "Fordi de er generaliserede til at adressere en stor pulje af almindeligt forekommende parallelle mønstre, ofte savner modellerne at skabe funktioner til nogle komplekse parallelle mønstre, såsom bølgefronter, der er skjult i nogle videnskabelige applikationer."
En bølgefront giver mulighed for analyse af mønstre i færre trin. Spørgsmålet er:Hvordan får man programmeringsmodellen til at gøre det?
Et sådant eksempel er Minisweep, en miniapp, der modellerer scenarier i en atomreaktor ved at "feje" hen over et gitter med firkanter, der repræsenterer punkter i rummet og bruges til at beregne positionerne, energier, og strømme af neutroner. Denne overordnede applikation til Minisweep bruges til at reducere chancerne for en nedsmeltning og til at beskytte ingeniører, der arbejder omkring atomreaktoren, mod strålingseksponering. Tidligere i år, Chandrasekaran og ph.d.-studerende Robert Searles demonstrerede, hvordan de modificerede miniappen til at fungere 85,06 gange hurtigere end kode, der ikke var paralleliseret. Dette arbejde blev for nylig præsenteret på den førende Platform for Advanced Scientific Computing (PASC) 2018-konference og udgivet af Association for Computing Machinery (ACM).
"Vi undrede os:Er dette mønster specifikt for Minisweep?, sagde hun. Eller kommer det til at eksistere i andre koder? Er der andre koder, der kunne gavne, hvis jeg skulle sætte denne type mønster i en programmeringsmodel og skabe en implementering og evaluere den?"
For eksempel, Chandrasekaran opdagede, at nogle algoritmer inden for bioinformatik, undersøgelse af store mængder biologiske data, indeholdt lignende mønstre. Hun har mistanke om, at ved at tilpasse softwaren skrevet til Minisweep, hun kan gøre store fremskridt i retning af at forbedre koden. Hun vil prøve dette med data fra Erez Lieberman Aiden, assisterende professor i molekylær og human genetik ved Baylor College of Medicine og assisterende professor i datalogi ved Rice University. Chandrasekaran mødte Aiden, da han besøgte UD for at holde en tale med titlen "Parallel Processing of the Genomes, af genomerne og for genomerne."
Chandrasekaran var inspireret af Aidens arbejde med DNA-sekvenser. Han bruger et computerværktøj til at finde lang rækkevidde interaktioner mellem to vilkårlige elementer på det samme kromosom, til gengæld viser det genetiske grundlag for sygdomme. Chandrasekaran havde mistanke om, at hun kunne bruge eksisterende mønstre og opdatere koden, giver mulighed for hurtigere analyse af disse vigtige biologiske data.
"Målet er ikke blot at skabe et softwareværktøj, " sagde hun. "Målet er at bygge virkelige casestudier, hvor det, jeg skaber, vil betyde noget med hensyn til at gøre videnskaben let."
Direktivbaserede parallelle programmeringsmodeller såsom OpenACC og OpenMP vil blive udforsket for at gøre dette.
Chandrasekaran sigter mod at opretholde ydeevne og bærbarhed, mens hun redesigner algoritmer. Hun vil også have de videnskabsmænd, der bruger algoritmerne i tankerne.
"Du kan ikke oprette en programmeringsmodel ved kun at se på applikationen eller kun se på arkitekturen, sagde hun. Der skal være en vis balance.
Dette projekt vil gavne videnskabelige applikationsudviklere, som ikke nødvendigvis er dataloger. "De kan koncentrere sig mere om videnskaben og mindre om softwaren, " sagde Chandrasekaran. Forskere kommer til hende med datasæt og problemer, der tager timer, dage, nogle gange måneder at beregne, og hun finder ud af, hvordan man får dem til at løbe hurtigere, dermed muliggøre nyere videnskab.
Chandrasekaran vil analysere data leveret af Aiden ved Baylor og fysikere ved Oak Ridge National Lab. Searles vil også arbejde på projektet, og Chandrasekaran leder efter en ekstra kandidatstuderende med evner til parallel programmering til at hjælpe med dette projekt.