Verden over forsøger videnskabsfolk at løse stadig mere komplicerede problemstillinger, hvor krævende computerberegninger er nødvendige.
Desværre er udviklingen af computer-processorens regnekraft nu stort set gået i stå, og man anvender derfor flere processorer per computer (også kaldet kerner).
Grafikkortet har taget denne strategi til det ekstreme og er i rivende udvikling. Grafikkort tilbyder i dag en regnekraft mange gange hurtigere end standardcomputeren.
Videnskabsfolk har dermed fået adgang til billige regneressourcer, hvilket kan flytte forskningen og vores forståelse af naturen.
Krævende grafik koster penge
Computerspil kræver meget stor regnekraft: Spilleren overflyver komplicerede og detaljerede landskaber, affyrer projektiler og forsager eksplosioner – alt sammen med krævende grafik der løbende skal beregnes.
Til dette benyttes computerens grafikkort, eller med mere teknisk sprog: Graphics-Processing-Unit (GPU).
En GPU er opbygget af simple men mange mikroprocessorer. Moderne grafikkort har 1.500 eller flere processorer indbygget – og det er til en pris på omkring 3.000 kr., eller cirka to kr. per processor!
\ Fakta
Udviklingen af grafikkort (GPU) går i dag meget hurtigere end udviklingen af standard CPU. GPUen er specielt velegnet til at regne i enkeltpræcision, dvs. tal med op til 7 betydende cifre. Dette er en acceptabel præcision for de flest videnskabelige beregninger.
Man kan – uden at der i øvrigt kan sammenlignes direkte – nævne, at Danmarks Meteorologiske Instituts to supercomputere hver har 512 standardprocessorer, Central-Processing-Unit (CPUer) med hver fire kerner, til en pris på omkring 20 mio. kr. per supercomputer.
Algoritmerne bag det hele
Desværre kan man ikke blot tage sit favoritprogram ned fra hylden og få grafikkortet til at lave beregningerne. Softwaren skal være programmeret til at udnytte grafikkort. Den gode nyhed er, at det kan mange af de populære videnskabelige programmer i dag, eksempelvis MATLAB.
Da videnskabsfolk for godt 10 år siden begyndte at anvende grafikkort, var det anderledes.
Programmeringen var ganske besværlig, og man skulle “snyde” grafikkortet til, at tro at fysiske størrelser som en partikels hastighed og position, var pixels på en skærm.
NVIDIA lancerede ny programmeringsmodel
I 2006 lancerede den førende grafikkortproducent NVIDIA en meget nemmere måde hvorpå kommunikationen med grafikkortet kunne foregå – det såkaldte 'interface mellem programmør og grafikkort.
NVIDIAs programmeringsmodel blev døbt CUDA (Compute Unified Device Architecture). Senere er en åben standard model, kaldet openCL, blevet udviklet, der skal gøre det muligt at regne på alle typer grafikkort.
De finere detaljer i programmeringsmodellerne er komplicerede, og skal man have fuldt udbytte af grafikkortet, skal disse detaljer kendes godt når man selv programmerer sin software. Derfor er programmeringserfaring og hardware forståelse nyttig her.
På den anden side er det nu muligt for ikke-eksperter at udnytte de fleste muligheder GPUen tilbyder og opnå betydeligt hurtigere beregningen med en ret lille indsats.
Er det besværet værd?
Om det er besværet værd kan ikke uden videre besvares generelt med et ja eller et nej:
Der skal det rigtige redskab til at løse et problem. Skal man fx gange to matricer sammen (beregninger der bl.a. anvendes i signalanalyse), vil beregningerne ofte være hurtigere at foretage på en helt almindelig CPU, hvis matricerne ikke er store.
Er matricerne derimod store, vil beregningen på grafikkortet være mange gange hurtigere. Faktisk kan GPUen være omkring 100 gange hurtigere end CPUen for tilstrækkeligt store matricer – og det er uden de store anstrengelser ved programmeringen af koden (se boks).
Ved grundforskningscentret “Glas og Tid” har vi siden 2008 benyttet NVIDIA grafikkort og CUDA-programmeringsmodellen.
Vi har udviklet specialdesignede algoritmer, som udnytter de forskellige muligheder grafikkortet tilbyder.
Vi har omkring 90 grafikkort i vores ’supercomputer’, hvilke giver en beregningskapacitet på den pæne side af 90 TeraFLOP/s, dvs. 90 1012 decimalberegninger (FLOP: “floating point operations”) pr sekund.
Asfalt og molekylære simuleringer

Har det så været besværet værd? Bestemt!
Overgangen til brug af grafikkort var et kvantespring for vores forskning, idet vi med ét kunne lave 20 gange hurtigere simuleringer.
For eksempel benytter vi grafikkort til at forstå seje væskers dynamik, nanovæsker og til simulering af molekylemodeller af raffineret bitumen (den sorte tjæredel i asfalt).
Studierne er baseret på molekyle-dynamiske beregninger, hvor man numerisk løser Newtons bevægelsesligning (se også boks under artiklen)
Dvs. et stort sæt koblede differentialligninger – typisk i størrelsesordnen 6.000-30.000 styk – der skal løses over den tid, som er karakteristisk for det problem, man studerer.
Seje væsker er karakteriserede ved en meget langsom dynamik. I ”Glas og Tid” og i projektet “From Micro to Nano” opstiller vi modeller for disse væsker, som studeres ved computer-simuleringer af molekyledynamik.
Grafikkort gør fors
For at kunne teste vores teorier er det nødvendigt at “ramme” den interessante dynamik, og derfor skal simuleringerne foretages over en (for molekyledynamik) enormt lang tidsskala. Grafikkortet gør os i stand til dette.

Computersimuleringer indgår også som en vigtig del af det strategiske forskningsprojekt Cooee.
Cooee-projektets formål er at etablere det videnskabelige grundlag for en reduktion af rullemodstanden (modstanden mellem dæk og vej), herunder at forstå ændringerne i de mekaniske egenskaber af bitumen (den sorte klistrede del af asfalten), efterhånden som en vej ældes.
I bitumen vil de største af molekylerne (asfaltenerne) med tiden danne nanoaggregater. Disse kan muligvis medføre nedsat vedhæftning til stenene i asfalten og derved give et dårligere vejgreb.
På baggrund af resultater fra molekyledynamik-simuleringer mener vi, at man kan kontrolle formationen af aggregater ved f.eks. at tilsætte harpiks. (Se modellen nederst til højre)
Simuleringerne af bitumen er foretaget med ”Glas og Tid”s molekyledynamikpakke, RUMD, designet og optimeret for GPU-computing.
Computersimuleringer
Bitumen kan bestå af mere end en million forskellige typer molekyler. Disse grupperes på baggrund af deres opløselighed i organiske opløsningsmidler.
Ud fra en sådan klassificering har vi opstillet en molekylemodel bestående af fire strukturer, der hver repræsenterer én gruppe. Vi studerer fænomener på en tidsskala svarende til omkring 2 mikrosekunder, hvilket er den karakteristiske tidsskala for molekylernes rotation.

På basis af resultaterne fra computersimuleringer foretaget inden for det seneste år har vi identificeret en afgørende årsag til ændring af asfalts mekaniske egenskaber med tiden.
Dette kunne ikke have været gjort med CPU-baserede simuleringer, da de kun kan foretage beregninger af meget kortere tidsrum på cirka 10 nanosekunder; på så kort en tidsskala kan mange egenskaber ikke studeres.
Ikke kun “Newton er på speed”
Grafikkort benyttes ikke kun til løsning af Newtons bevægelsesligninger. Eksempler på andre anvendelser er Computational Fluid Dynamics (CFD), optimeringsproblemer og signalanalyse.
Det første interface med grafikkortet var baseret på programmeringssproget C. I dag findes der interfacer til fx sprogene Python, Java og Fortran, så man nu kan programmere software, der kan køre på GPU-kort i sit favoritsprog.
Mange softwarepakker understøtter faktisk GPU-beregninger, uden at brugeren skal have kendskab til GPU-programmering (som nævnt ovenfor er MATLAB et eksempel herpå) – faktisk kan brugeren være helt uvidende om, at programmet benytter grafikkortet.
Grafikkortets ressourcer er dermed nu tilgængelig for alle, selvom man stadig selv må programmere nede “på bit-niveau”, hvis den allerhurtigste kode skal opnås.
\ Kilder
- Grundforskningscentret for seje væskers dynamik “Glas og Tid”, IMFUFA, Institut for Natur, Systemer og Modeller, Roskilde Universitet
- Jesper Schmidt Hansen
- Nicholas Bailey
- Jeppe Dyre
- Thomas B. Schrøder
- Læs også bogen: J. Sanders og E. Kandrot, CUDA by Example: An Introduction to General- Purpose GPU Programming, NVIDIA Corporation (2011).
- Læs også bogen: R. Tsuchiyama et al., Programming Book, Fixstarts corporation (2010) (Ikke gratis)
- CO2 Emission Reduction by Exploitation of Rolling Resistance Modelling of Pavements, Procedia - Social and Behavioral Sciences, doi.org/10.1016/j.sbspro.2012.06.1011
- Do the repulsive and attractive pair forces play separate roles for the physics of liquids?, Journal of Physics, doi:10.1088/0953-8984/25/3/032101
\ Om Newtons bevægelsesligning
Newtons 2. lov er givet ved: (Se formlen øverst til højre)
hvor mi er massen af partikel i, ri dens stedvektor, og Fi er kraften på den fra de andre partikler i systemet.
Newtons 2. lov bestemmer molekylernes bevægelse, når man foretager molekyledynamik-simuleringer; den er altså motoren bag det hele. For systemer med mange partikler er ligningen et højdimensionalt koblet differentialligningssystem, der ikke kan løses analytisk.
Man må derfor ty til numeriske metoder, altså til computersimuleringer. Når det sker, diskretiseres ligningssystemet med hensyn til tiden. I molekyledynamiske simuleringer er et diskret tidskridt typisk cirka 1-10 femto-sekunder (et femto-sekund er 10-15 sekund).
\ Seje væsker
Figuren nederst til højre viser kvadratet af den gennemsnitlige afstand (middelvejs-forskydningen) et molekyle har bevæget sig som funktion af tiden.
Tid og afstand er angivet i karakteristiske simuleringsenheder. Afstandsenheden svarer til ca. 1 Ångstrøm, tidsenheden til ca. et picosekund.
I seje væsker er det specielt overgangen (angivet ved plateauet) fra den såkaldte ballistiske bevægelse ved meget korte tider til den diffusive bevægelse ved længere tider, der er interessant.
Med GPU-baserede simuleringer kan vi studere denne overgang i betydelig længere tid end med CPU-baserede simuleringer. Ved den laveste temperatur kommer systemet først i ligevægt efter tre måneders simulering.
Hvis en tilsvarende simulering var foretaget på en CPU-baseret computer, ville det have taget omtrent seks år med den hurtigste CPU, man har til rådighed i dag!
































