DTU’s nye supercomputer kører Python og C i klynger

DTU Fysiks nuværende klynge-computer Niflheim. Illustration: DTU
Klynge-arkitektur giver DTU Fysik mest computerkraft for pengene.

DTU's Institut for Fysik er på shoppingtur efter en ny Linux-baseret klynge-computer, der skal bruges til kommatals-baserede intensive numeriske simuleringer ved hjælp af forskernes egenudviklede kode samt kommerciel software. Det skal koste 12 millioner kroner.

Læs også: DTU Fysik shopper ny klynge-supercomputer med Linux

»Den skal bruges til at lave kvantemekaniske beregninger, især for materialer. Det kan være forskellige typer materialer: katalysatorer, solceller og batterier. Der er mange egenskaber i disse materialer, man kan beregne ud fra naturlovene. På den måde kan man finde frem til materialer, der har nogle ønskede egenskaber. Det er tæt på grundforskning, men har også anvendte perspektiver,« forklarer Karsten Wedel Jacobsen som er professor ved DTU Fysik.

DTU's supercomputer skal bruges til at foretage kvantemekaniske beregninger for materialer så som katalysatorer, solceller og batterier, forklarer professor Karsten Wedel Jacobsen fra DTU Fysik. Illustration: Lisbeth Holten

Den ny klyngecomputer skal spille sammen med DTU Fysiks nuværende af slagsen, Niflheim, som er bygget op i mange etaper med start i 2003.

Den første version bestod af 500 konsum-pc’er, som blev stablet op i kælderen på hylder ved siden af hinanden. Senere er Niflheim blevet opgraderet mange gange.

Mange computere i parallel

Man har skilt sig af med ældre dele og fået ny hardware, men selve grundprincippet om, at der er brug for mange computere i parallel til at lave DTU Fysiks beregninger, har været til stede hele tiden.

»Vi er primært ude efter at kunne lave så mange beregninger som muligt. Vi er mere efter hurtigere beregninger end for eksempel store datamængder. Input/output udgør også små mængder.«

Det handler om intensive beregninger. Den nuværende maskine er 100 procent belagt, og der er altid beregninger til adskillige dage i køen.

»Et eksempel på store beregninger er at finde materialer til vandsplitning. Man vil have materialer, der kan splitte vand i brint og ilt. Så kan man bruge brint som brændstof. En måde at gøre det på er, hvor energien til at splitte vandet kommer fra sollyset. Derfor skal man have materialer, som meget effektivt kan udnytte lyset fra solen. Dem søger vi efter.«

Python med lidt C

DTU Fysik har udviklet sine egne Python-biblioteker, og som tidligere nævnt er det en del af udbuddet, at koden skal køre godt på det kommende system.

»Der er tale om forskellige komponenter, såsom et ‘atomic simulation environment’,« fortæller Karsten Wedel Jacobsen.

»Det er et sæt Python-moduler, der kan bruges til at lave beregninger på atomar skala. Man skal specificere, hvor man har sine atomer i en struktur, og der er Python en fleksibel måde at klare den slags på. Selve vores kvantemekaniske kode er i overvejende grad skrevet i Python. Det har vist sig at være et godt sprog af flere grunde: Det er hurtigt at skrive kode i, og det er fortolket og giver mindre arbejde, fordi man ikke har kompileringsfasen.«

Dertil kommer, at Python er objektorienteret, og at Python har mange år på bagen og kommer med mange standardbiblioteker til bl.a. numerisk behandling:

»NumPy og SciPy bruger vi en masse af.«

Disse biblioteker er implementeret i C og har dermed højere ydelse.

»På samme måde består den kvantemekaniske del af vores kode af fem til ti procents C-kode, men alt det andet er skrevet i Python. Så man får isoleret den del af problemet, der virkelig kræver en hurtigere implementering, og man kan lave resten på en meget fleksibel måde.«

Klynger giver bedst ydelse pr. krone

Klynge-arkitekturen giver DTU Fysik mest computerkraft for pengene i forhold til anvendelsen.

»Supercomputere bør nu om dage designes til de opgaver, den skal løse optimalt, i stedet for at tilpasse opgaverne til en given maskine,« uddyber Ole Holm Nielsen, som er HPC chefkonsulent hos DTU Fysik.

»Valget af gængse CPU-arkitektur, i modsætning til f.eks. ASICs, FPGA’er eller GPU’er, har at gøre med strukturen af de problemer, vi løser. GPU’er er ikke nyttige for os p.t., med den kode vi kører,« mener Karsten Wedel Jacobsen.

DTU Fysik har i udbuddet bedt om CPU’er, som giver maksimal regnekraft og hukommelsesbåndbredde til de vigtigste opgaver. Forholdet mellem pris og ydelse er også inde i billedet.

Maskinen skal designes til opgaven og ikke omvendt, mener Ole Holm Nielsen, som er HPC chefkonsulent hos DTU Fysik. Illustration: Lisbeth Holten

En del af udbuddet handler også om test af den kode, som DTU Fysik arbejder med, for det er bedst at afprøve den i praksis.

»I vores verden er der ikke nogen, der benytter FPGA’er eller ASIC’s, da de er skræddersyet til én bestemt og veldefineret opgave. Alle vores brugere har forskellige opgaver og behov, så vi er ikke ude i esoterisk hardware,« siger Ole Holm Nielsen.

Exascale i fremtiden

»Man taler meget i vores felt om ‘exascale computing’, hvor man overvejer, hvordan man kan få langt højere ydelse end i dag – hvilken arkitektur skal man gå efter? Hvis man har 100.000 noder, er man stadig i stand til at lave vores typer af beregninger? Det er næsten et forskningsområde i sig selv,« siger Karsten Wedel Jacobsen.

Med exascale computing tænkes på afvikling i skala med exaflops – altså 10^18 kommatals-operationer pr. sekund.

»Et af de store problemer med exascale er software-arkitektur,« fortæller Ole Holm Nielsen.

Det er nemlig endnu ikke klart, hvordan skal man programmere en fremtidig exascale-computer.

»Det er et forskningsområde i sig selv. Det er heller ikke givet, at alle vores typer af problemstillinger egner sig til den type af meget store computere. Vi har mange mindre opgaver.«

Hundredevis af brugere

Den nuværende klynge har omkring 50 aktive brugere til alle tider. Der er ca. 100-200 stykker, som har en konto i systemet. Derudover kommer et antal brugere, som kun er aktive indimellem, for eksempel i forbindelse med studenterprojekter.

Brugerne har også deres egne lokale workstations, hvorpå de kan udvikle programmer til klyngen på - og så er der nogle få noder på maskinen, som er dedikeret til interaktiv udvikling.

Brugernes opgaver sættes i kø, når de skal afvikles på den nuværende klynge. Der er altid mange job i køen, så maskinen er fuldt belagt. Det er for at få den optimale brug af maskinen.

»Tilbage i 1980’erne snakkede man om, at Moores lov ville blive ‘jævnet ud’, men i virkeligheden er ydelsen blevet speedet op – man får mere og mere ydelse pr. dollar. Om ti år kan man lave de samme beregninger meget hurtigere. Vi ser frem til at få den nye computer, for der er lang opgave-kø på den, vi har i øjeblikket. Så det bliver en fornøjelse.«

DTU Fysik håber at få den nye computer leveret omkring nytår, og så går der ikke så lang tid, før den er i drift. Ethernet-kabling installerer DTU’s egne elektrikere.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Hans Nielsen

"Det er hurtigt at skrive kode i, og det er fortolket og giver mindre arbejde, fordi man ikke har kompileringsfasen.«"

Hvis man skal skrive "Hej" på skærmen så er en fortolker, som en web browser udmærket.
Hvis man skal lave svære og lange beregninger, så forstår jeg ikke at man ikke bruger det som laver det meste effektive beregningsarbejde.

Måske kan i spare pengene til en ny server ved at effektivisere jeres software ?

"»Tilbage i 1980’erne snakkede man om, at Moores lov ville blive ‘jævnet ud’, men i virkeligheden er ydelsen blevet speedet op – man får mere og mere ydelse pr. dollar."
Ja det er som Moores lov siger! Eksponentiel vækst ?

Håber det er Journalisten og ikke chefKONSULENT, som har haft en dårlig dag.

Simon Mikkelsen

Hvis man skal lave svære og lange beregninger, så forstår jeg ikke at man ikke bruger det som laver det meste effektive beregningsarbejde.

Forklaringen er, at Pythons biblioteker ofte er skrevet i C og andre sprog. Der nævnes NumPy og SciPy, som er skrevet i C og måske noget assembler, med henblik på max performance. De nævner også at have skrevet noget selv.

Det skal man tænke over når man laver sådan nogle beregninger.

Den logik der ikke indeholder tunge beregninger, fordeling mellem computere og CPUer, er skrevet i Python. Det er meget hurtigere end i C. Men når der kommer tunge beregninger, kalder man bibliotekerne, som er optimeret til performance, og lader dem klare det tunge arbejde. Det er ikke noget man tænker over, når man koder i Python. Man har bare en masse funktioner, der performer som om de er skrevet i C: For det er de!

Hans Nielsen

Man vil gerne have en supercomputer i top 100, men har kun 12 millioner ?


"at der er brug for mange computere i parallel til at lave DTU "
" (uden meget io og hukommelsesforbrug)
og
»Vi er primært ude efter at kunne lave så mange beregninger som muligt. Vi er mere efter hurtigere beregninger end for eksempel store datamængder. Input/output udgør også små mængder.«
og
GPU’er er ikke nyttige for os p.t., med den kode vi kører,«

Måske skulle de få lavet deres kode så GPU bliver nyttigt, også kan de klare sig med nogle "grafikkort"

Parallel programmering i GPU eller lignende er kommet for at blive, og hvorfor ikke få 2000 GPU til en CPU's pris. Så måske skulle man tænke på at ændret i sit software. Ved godt at FPU i GPU og CPU ikke helt kan sammenlignes.

Men der er sket meget i software og afvikling på GPU bare inden for de sidste år. Har de læst dette.

"DTU Fysik har i udbuddet bedt om CPU’er, som giver maksimal regnekraft og hukommelsesbåndbredde til de vigtigste opgaver. Forholdet mellem pris og ydelse er også inde i billedet."
"
Det er heller ikke givet, at alle vores typer af problemstillinger egner sig til den type af meget store computere. Vi har mange mindre opgaver.«
"
Skal der så bruges en "supercomputer", en compute, med meget ram, flere kerner og enheder kombineret med Grafikkort kort. Kunne måske løse dette meget bedre. Det tager måske noget længere tid, men "alle" kunne så få deres egen til de mindre opgaver.
Man kan få rigtigt meget Computerkraft, hvis man dropper ordret "supper"
Måske er 64 kerner og 128 tråde nok, så kunne man få omkring 120 styk
baseret på AMD Ryzen Threadripper. OG det med 2-3 grafikkort. De vil helt sikkert kunne løse de fleste små opgaver.

OG de vil hver især have langt mere end dobbelt så meget regnekraft som den første server fra 2003.

Og hvorfor ikke KØBE en hyldevarer, i 12 millioner klassen er der mange

løsninger, udbud,konsulenter og eget arbejde med kabling er sikkert kun med til at fordyre løsningen.

"Forholdet mellem pris og ydelse er også inde i billedet."
ER det ikke det vigtigste, bedste værktøj til givent job.

De dyre konsulent kr., er vel betalt for at få dette ?
Eller så er de givet dyrt ud.

Er der også regnet på drift og elforbrug ved de forskellige løsninger ?


De lidt større opgaver, kunne man måske arbejde sammen med andre om at få løst ude i byen. Der er sikkert steder hvor man kan købe sig ind. Med tanke på strømforbrug og pris, så kunne man måske med held lægge jobbene på Island eller i Norge.

Selv med 12 millioner og Moores lov, så får man ikke meget supercomputer for 12 millioner. Men man kan få mange grafikkort.

Troels Henriksen

Jeg synes også det lyder lidt underligt at bygge en ny maskine helt uden GPU'er - de er efterhånden blevet standardudstyr, og der findes mange biblioteker der har fået GPU-understøttelse. GPU'er kan ikke bruges til alting, men de giver ret meget FLOPS for pengene når de virker. Spørgsmålet er hvad det er for nogle beregninger DTU-forskerne udfører, som de mener passer dårligt til GPU'er. GPU'er er ret ringe til irregulære grafproblemer og lignende, men de fleste fysiksimuleringer jeg har set fungerer nu udmærket. Jeg er ret nysgerrig omkring hvad det kan være.

Derudover er dette en sær udtalelse:

> »Tilbage i 1980’erne snakkede man om, at Moores lov ville blive ‘jævnet ud’, men i virkeligheden er ydelsen blevet speedet op – man får mere og mere ydelse pr. dollar. Om ti år kan man lave de samme beregninger meget hurtigere.

Selvfølgelig bliver maskinerne stadigvæk hurtigere, men det går væsentligt langsommere end det plejer, især hvis man kun kigger på CPU'er. Jeg tror ikke væksten i ydelse-per-pris for en CPU er mere end omkring 15-20% årligt nutildags. Det er rigtigt at man i 1980'erne havde en forventning om at man var ved at ramme muren for sekventiel CPU-ydelse, hvilket som bekendt ikke skete, men muren blev altså ramt omkring 2005 i stedet.

Så ja, i 2028 kan man få en hurtigere maskine end i dag - men forskellen bliver sandsynligvis mindre end fra 2008 og til nu.

Hans Nielsen

I stedet for at stå i kø flere dage med mindre job, så kunne man jo give hver sit kontor sin lille server.

Det kan godt være jobbet tager noget længere tid, men hvis man ikke skal vente en uge på at få sit job kørt. Så kunne det være en bedre løsning.

Vil tro AMD EPYC efterhånden er moden. Og med de nye generationer på vej, får man meget for pengene.

Vil tror at valg af dem, vil blive sparet ind på drift, vedligeholdelse og el forbrug.

Man kan også vælge den "lidt" mindre server agtige Threadripper, hvis man ikke har brug for så mange PCIe lanes og hukommelse.

Vil tro man for under 100.000,- og omkring en times tid, kan bygge en "server"/supercomputer som kan klare hovedparterne af opgaverne på under en time. Også kan den tygge i lidt længer tid på opgaverne i stedet for at man venter i kø i dagevis.

2x AMD Ryzen ThreadRipper 2990WX 30.000 = 64 kerner/128 Tråde
1 Bundkort/kabinet/PSU/LØSDELE 20.000
SSD/M2 Fast Hukommelse/Disk 10.000
RAM 16Gb8 = 128Gb 10.000
4
Grafikkort (tesla eller nye linje) 30.000

Også er det også mulighed for at spille på den :-)

Ulrik Schmidt

CPU'er er gode til at regne på sparse matricer, hvor GPU'er er gode til at regne på dense matricer. I forbindelse med fx finite element analyser (en numerisk metode som fysikere og ingeniører bruger til mange ting), er det sparse matricer, der skal knuses.

Log ind eller Opret konto for at kommentere