Sunita Chandrasekaran, en biträdande professor i data- och informationsvetenskap, designar ramverk för att anpassa kod till allt kraftfullare datorsystem. Hon arbetar med komplexa mönster som kallas vågfronter, som är avbildade i bakgrunden av denna bild. Kredit:Joy Smoker
Världens snabbaste superdator kan nu prestera 200, 000 biljoner beräkningar per sekund, och flera företag och statliga myndigheter runt om i världen tävlar om att bygga en maskin som kommer att ha datorkraft för att simulera nätverk i den mänskliga hjärnans skala. Denna extremt kraftfulla hårdvara kräver extremt kraftfull programvara, så befintlig programvarukod måste uppdateras kontinuerligt för att hänga med.
Sunita Chandrasekaran, en biträdande professor i data- och informationsvetenskap vid University of Delaware, passar perfekt för denna utmaning. Under ett nytt anslag från National Science Foundation, hon designar ramverk för att anpassa kod till allt kraftfullare system. Hon arbetar med komplexa mönster som kallas vågfronter, som vanligtvis finns i vetenskapliga koder som används för att analysera flödet av neutroner i en kärnreaktor, extrahera mönster från biomedicinska data eller förutsäga atmosfäriska mönster.
Chandrasekaran är expert på parallell programmering – att skriva programvarukod som kan köras samtidigt på många flerkärniga processorer. Parallellprogrammering är en allt viktigare disciplin inom datavetenskap eftersom fler och fler universitet och företag använder kraftfulla superdatorer för att analysera stora mängder data, från vetenskapliga resultat till insikter om konsumentbeteende och mer.
Chandrasekaran tittar på vetenskapliga tillämpningar för att se hur de skrevs, hur de har presterat på föråldrade arkitekturer, vilken typ av programmeringsmodeller har använts, och vilka utmaningar som har uppstått.
"För det mesta skapas programmeringsmodellerna i stort sett, ", sa hon. "Eftersom de är generaliserade för att ta itu med en stor pool av vanliga parallella mönster, ofta missar modellerna att skapa funktioner för några komplexa parallella mönster, som vågfronter, som är dolda i vissa vetenskapliga tillämpningar."
En vågfront möjliggör analys av mönster i färre steg. Frågan är:Hur får man programmeringsmodellen att göra det?
Ett sådant exempel är Minisweep, en miniapp som modellerar scenarier inom en kärnreaktor genom att "svepa" över ett rutnät med rutor som representerar punkter i rymden och används för att beräkna positionerna, energier, och flöden av neutroner. Denna moderapplikation till Minisweep används för att minska risken för en härdsmälta och för att skydda ingenjörer som arbetar runt kärnreaktorn från strålningsexponering. Tidigare i år, Chandrasekaran och doktoranden Robert Searles visade hur de modifierade miniappen för att prestera 85,06 gånger snabbare än kod som inte var parallelliserad. Detta arbete presenterades nyligen i den främsta konferensen Platform for Advanced Scientific Computing (PASC) 2018 och publicerades av Association for Computing Machinery (ACM).
"Vi undrade:Är detta mönster specifikt för Minisweep?, " sa hon. "Eller kommer det att finnas i andra koder? Finns det andra koder som skulle kunna gynnas om jag skulle lägga in den här typen av mönster i en programmeringsmodell och skapa en implementering och utvärdera den?"
Till exempel, Chandrasekaran upptäckte att vissa algoritmer inom bioinformatik, studiet av stora mängder biologiska data, innehöll liknande mönster. Hon misstänker att genom att anpassa programvaran skriven för Minisweep, hon kan göra stora framsteg mot att förbättra koden. Hon kommer att prova detta med data från Erez Lieberman Aiden, biträdande professor i molekylär och human genetik vid Baylor College of Medicine och biträdande professor i datavetenskap vid Rice University. Chandrasekaran träffade Aiden när han besökte UD för att hålla ett föredrag med titeln "Parallell Processing of the Genomes, av genomen och för genomen."
Chandrasekaran inspirerades av Aidens arbete med DNA-sekvenser. Han använder ett datorverktyg för att hitta långväga interaktioner mellan två element på samma kromosom, i sin tur visar den genetiska grunden för sjukdomar. Chandrasekaran misstänkte att hon kunde använda befintliga mönster och uppdatera koden, möjliggör snabbare analys av dessa viktiga biologiska data.
"Målet är inte att bara skapa ett mjukvaruverktyg, " sa hon. "Målet är att bygga verkliga fallstudier där det jag skapar kommer att ha betydelse när det gäller att göra vetenskapen lätt."
Direktivbaserade parallellprogrammeringsmodeller som OpenACC och OpenMP kommer att utforskas för att göra detta.
Chandrasekaran strävar efter att upprätthålla prestanda och portabilitet när hon designar om algoritmer. Hon kommer också att ha forskarna som använder algoritmerna i åtanke.
"Du kan inte skapa en programmeringsmodell genom att bara titta på applikationen eller bara titta på arkitekturen, sa hon. Det måste finnas någon balans.
Detta projekt kommer att gynna vetenskapliga applikationsutvecklare som inte nödvändigtvis är datavetare. "De kan koncentrera sig mer på vetenskapen och mindre på mjukvaran, " sa Chandrasekaran. Forskare kommer till henne med datamängder och problem som tar timmar, dagar, ibland månader att beräkna, och hon kommer på hur man får dem att springa snabbare, vilket möjliggör nyare vetenskap.
Chandrasekaran kommer att analysera data från Aiden vid Baylor och fysiker vid Oak Ridge National Lab. Searles kommer också att arbeta med projektet, och Chandrasekaran söker ytterligare en doktorand med en fallenhet för parallell programmering för att hjälpa till med detta projekt.