Gjest Slettet+5132 Skrevet 9. mai 2019 Del Skrevet 9. mai 2019 (endret) Har lurt litt på dette, hvordan setter man en slik sak i sving/arbeid? Hva brukes den Egentlig til? :-p Mye krefter! Det som er viktig å huske er at det ikke er noe veldig magisk over en slik maskin. Det er mange raske datamaskiner koblet sammen via en svært god nettverkssvitsj (som ofte gjør lure ting mhp hvilke maskiner som kan raskt snakke med hvilke andre maskiner). Den brukes hovedsakelig til vitenskapelige beregninger. Det igjen kan være mye rart, men typisk ting som å regne på fluiddynamikk, regne på molekyler (til eg nye materialer), og delvis under fluiddynamikk også regne på astrofysikk og liknende. For å bruke den må man ha et program som klarer å nyttegjøre seg av flere maskiner samtidig. Dette oppnår en i 99% av tilfellene med å bruke MPI (message passing interface). MPI lar deg skrive program som sender data frem og tilbake mellom PCene i nettverket. For å illustrere hvorfor du vil sende data frem og tilbake i nettverket, tenk deg at du ville regne på hvordan lufttrykket over Norge utviklet seg over tid (værvarsling gjør essensielt dette, bare med litt flere ukjente). For å dra nytte av flere maskiner samtidig, deler du da Norge opp i flere biter, la oss for for eksempelets del anta at vi har delt Norge inn i Sør-, Midt- og Nord-Norge (ganske dårlig fordeling all den tid Nord-Norge er mye større, men la gå). Inne i hver del kan du regne deg frem til trykket ved neste "iterasjoner", det vil si bittelitt frem i tid, men du trenger alltid å vite hva trykket er i nabodelene, så maskinen som har data for midt-Norge må sende trykket langs grensen til maskinen med Sør-Norge og til maskinen med Nord-Norge, og maskinen med Sør-Norge må sende til maskinen med Midt-Norge. Her sender man altså kun data akkurat langs grensen mellom de to delene. I praksis skriver man et slikt program i enten C/C++, Fortran og til en mindre grad Python eller Julia. Så bruker en litt tid på å få dette programmet til å kjøre på denne serveren (kan ta litt tid!). Når alt er klart, må en pent be serveren om å få lov til å kjøre et slikt program. Det gjør man med at man oppgir antall maskiner en trenger (eller antall CPU-kjerner), og hvor lenge en trenger maskinen (de store clusterne tillater deg ikke å allokere for mer enn 24 timer om gangen). Clusteret prøver da å bestemme optimal tid for når programmet ditt skal starte, og dette kan ta alt fra et par sekunder til et par uker. En okkuperer ofte ikke hele maskinen samtidig, og det kan være flere personer som regner på noe samtidig som deg, bare på andre noder/maskiner. Nå skal det også nevnes at for å få tilgang til slike maskiner må en ofte skrive en søknad som forklarer hvorfor det en vil regne på er viktig, og hvorfor programmet en vil bruke kan utnytte en så stor maskin. Søknaden blir da evaluert av en faglig komite. Endret 9. mai 2019 av Slettet+5132 Lenke til kommentar
Gjest Slettet-t8fn5F Skrevet 9. mai 2019 Del Skrevet 9. mai 2019 Har lurt litt på dette, hvordan setter man en slik sak i sving/arbeid? Hva brukes den Egentlig til? :-p Mye krefter! Lenke til kommentar
Del Skrevet 12. mai 2019 Del Skrevet 12. mai 2019 Dette var kjempeinteressante nyheter. Saken misser det mest oppsiktsvekkende med denne nyheten, og det er valg av Radeon GPU. Dette er et enormt slag for Nvidia, som med sin CUDA i stor grad har lykkes med å få monopol innen HPC. Med denne maskinen vil ROCm stacken til AMD få innpass i verdens største HPC miljø. Det er en stor seier for open source, og HPC brukere. Endelig kan vi øyne håp om at GPGPU programmering kan standardiseres på tvers av hardware produsenter. Lenke til kommentar
HKS Skrevet 12. mai 2019 Del Skrevet 12. mai 2019 Dette var kjempeinteressante nyheter. Saken misser det mest oppsiktsvekkende med denne nyheten, og det er valg av Radeon GPU. Dette er et enormt slag for Nvidia, som med sin CUDA i stor grad har lykkes med å få monopol innen HPC. Med denne maskinen vil ROCm stacken til AMD få innpass i verdens største HPC miljø. Det er en stor seier for open source, og HPC brukere. Endelig kan vi øyne håp om at GPGPU programmering kan standardiseres på tvers av hardware produsenter.Dette er en kjent strategi fra DOE i USA. De dele opp de store maskinene på flere leverandører. To maskiner som nettopp har blitt ferdigstilt nå kjører IBM på CPU og Nvidia på GPU (Sierra & Summit). Det kommer også en maskin i 2020 som skal bruke AMD på CPU siden og Nvidia på GPU-siden (Shasta). I 2021 kommer det i tillegg til denne maskinen som ble annonsert fra AMD også en maskin som skal kjøre Intel både på CPU og GPU (Aurora). På disse maskinene har OpenACC blitt pushet ganske lenge, og som kjent så støtter ROCm også å kompilere kode som bruker CUDA. 1 Lenke til kommentar
Del Skrevet 12. mai 2019 Del Skrevet 12. mai 2019 Finnes det noe informasjon om strategien? Lenke til kommentar
HKS Skrevet 12. mai 2019 Del Skrevet 12. mai 2019 Finnes det noe informasjon om strategien?Det ble sagt senest på Supercomputing i Dallas i november i fjord, når de presenterte Shasta/Perlmutter, som blir forgjengeren til denne maskinen. Mulig jeg har noen slides fra presentasjonen på jobben. Lenke til kommentar
Del Skrevet 12. mai 2019 Del Skrevet 12. mai 2019 Det har faktisk vært veldig interessant å se hvis du gidder. 1 Lenke til kommentar
HKS Skrevet 12. mai 2019 Del Skrevet 12. mai 2019 Det har faktisk vært veldig interessant å se hvis du gidder.Det skal jeg gjøre. Det blir en spennende miks av hardware DOE får i årene fremover: 2020: Perlmutter - AMD EPYC (Zen 3) + "Volta Next" 2021: Aurora - Intel Xeon (Ice Lake) + Intel Xe 2021: Frontier - AMD EPYC (Zen 4) + "Navi Next" Det kommer også til å bli annonsert enda en maskin senere i år, den vil høst sannsynlig bli basert på IBM POWER10 og en ny generasjon med Nvidia GPUer. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå