Kan vi skabe et programmeringsmiljø, der ikke kræver, at enhver forsker er datalog? Kredit:Unsplash/Markus Spiske
For årtier siden, computere var dyre, kompleks og sjælden.
Den personlige computerrevolution ændrede alt det, giver de fleste af os let tilgængelige og billigere gadgets, der var mindre, hurtigere og lettere at bruge. Forskere gav også fordel. De udviklede edb -teknikker til at studere den indre funktion af celler, planets baner omkring fjerne stjerner og andre fænomener, der engang var langt uden for deres observationsbeføjelser.
Men for forskere på forkant, en vis ironi er dukket op:Nye og sofistikerede instrumenter begynder at producere så mange data, at supercomputere er nødvendige for at analysere eksperimentelle resultater. Og forskere, der forsøger at analysere sådanne enorme datasæt, kæmper ofte med at mestre kompleksiteten af softwaren, der er nødvendig for at programmere hardwaren.
Indtast Regent, et nyt programmeringssprog udviklet af en gruppe ledet af Stanford computerforsker Alex Aiken. Blandt andet, Regent gør supercomputere lettere at bruge. "Vi ønskede at skabe et programmeringsmiljø, der ikke kræver, at enhver forsker er datalog, siger Aiken, Alcatel-Lucent-professoren i kommunikation og netværk.
Regent hjælper med at løse en af de største udfordringer inden for supercomputing:Dagens supercomputere er langt mere komplekse end nogensinde før, og eksisterende programmeringssprog har kæmpet for at holde trit. En supercomputer kan i den populære fantasi fremstå som en kæmpe maskine, men det er faktisk en række tusinder af mikroprocessorer, der arbejder sammen. Forskere programmerer typisk disse arrays ved hjælp af C ++, et softwaresprog opfundet for omkring 40 år siden - en eon i datalogitid. Dengang, den dominerende mikroprocessor var den centrale behandlingsenhed, eller CPU, chippen, der lancerede pc -revolutionen. CPU'er løser store problemer hurtigt, den ene beregning efter den anden, på hvad programmører kalder en seriel måde.
For nylig, imidlertid, en anden type mikroprocessor er blevet vigtig for supercomputing:den grafiske behandlingsenhed, eller GPU. Først brugt til at styre millioner af pixels på computerskærme for at forbedre visualiseringerne af videospil, GPU'er kan udføre mange lignende beregninger samtidigt, eller parallelt, som programmører ville sige. Parallelbehandling har vist sig yderst nyttig i applikationer såsom maskinlæring. C ++ er blevet opgraderet for at følge med i disse og andre hardwareændringer. Desværre, tilføjelsen af patches har gjort sproget stadig vanskeligere at bruge. Regent, imidlertid, gør det lettere for en supercomputer programmer at gøre ting som at tildele serielle behandlingsopgaver til CPU'er og parallelle behandlingsopgaver til GPU'er.
Når Regent har indrammet programmet på et konceptuelt niveau, programmørens intentioner oversættes - eller at bruge det tekniske udtryk, samlet - til et andet softwarelag kaldet Legion, som Aiken også udviklede. Legion genererer maskinkode - præcise instruktioner, der leder supercomputerens hardware, hvordan programmet udføres. Den stramme integration mellem Regent og Legion gør det lettere for programmører at træffe andre vigtige beslutninger; især, hvor man gemmer de data, som supercomputeren skal analysere.
Elliott Slaughter, en forsker ved SLAC National Accelerator Laboratory, der har arbejdet på Regent og Legion næsten siden deres begyndelse, siger integrationen mellem de to lag sparer programmører både penge og tid. Computere bruger energi, som har en pris. Men energiomkostningerne ved at flytte data kan være 100 gange omkostningerne ved at udføre beregninger på disse data. I øvrigt, store eksperimenter er ofte afhængige af instrumenter, der indsamler enorme mængder data. Slaughter sagde, at nogle instrumenter kan indsamle dataækvivalenterne til 20 video -dvd'er hvert sekund til eksperimenter, der varer 15 minutter. Selv bevæger sig med lysets hastighed over fiberoptik, at få så mange data fra instrument til supercomputer kan skabe forsinkelser, der kan tyggegummi analysen. "Hvor du lægger dataene viser sig at være en af de vigtigste beslutninger, en programmør tager, "Siger Slaughter. Regent og Legion sparer penge og tid ved at give programmøren hidtil uset kontrol over, hvor dataene skal gemmes, mens de afventer beregning.
Bliver Regent udbredt? Forskerne siger, at nye sprog skal overvinde en stor inerti. "Regent er en meget anderledes måde at programmere på, "Det siger Aiken." Det vil tage et stykke tid, før forskere tager den nødvendige tankegang. "
Men to faktorer virker i dens favør. Først, supercomputing hardware fortsætter med at blive forbedret. Det amerikanske energiministerium driver udviklingen med sit Exascale Computing Project, som sigter mod at opnå en 50-faldig stigning i supercomputational power engang omkring 2021. DOE støtter softwareprojekter, herunder Regent, for at hjælpe programmeringen med at holde trit.
I øvrigt, mange forskere, der gerne vil bruge supercomputere, er ikke bekendt med de nuværende værktøjer og skrøbelighed i den stejle indlæringskurve, der kræves for at programmere store eksperimenter. Selv erfarne supercomputere kan finde det nuværende system besværligt og spekulere på, om der ikke er en bedre måde. "Vi regelmæssigt for at tale med forskere, der indser, hvor meget lettere Regent gør livet for dem, "Sagde Aiken.
Sidste artikelAI-designede varmepumper bruger mindre energi
Næste artikelEn lille blød robot, der efterligner vandmænd