Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Sustav ScaleMP
Daniel Vrčić
Sveučilišni Računski Centar (Srce)
Sadržaj
• Sustav ScaleMP• Arhitektura NUMA-COMA• Podrška operacijskog sustava• Podnošenje poslova
Općenito
• ScaleMP je virtualizacijsko rješenje za računarstvo visokih performansi (engl. high performance computing)
● Omogućava agregiranje resursa (CPU, I/O, RAM) više nezavisnih čvorova u jedan veliki virtualni poslužitelj (engl. Single System Image)
● Čvorovi mogu biti sastavljeni od različitog hardvera ● miješane arhitekture● „običan“ (engl. commodity) hardver
● Mreža čvorova mora biti izgrađena InfiniBand ili GbE riješenjima
Općenito
• Agregacija maks. 128 poslužitelja, 16384 procesorske jezgre, 64 TB RAM
• Nije otporan na greške u radu čvorova● čvor neispravan (RAM npr.) → cijeli sustav se mora restartati
● Različita virtualizacijska rješenja (full, kernel level, application level, hypervisor...)
Općenito
● ScaleMP je virtualizacijsko riješenje realizirano hipervizorom
• U pitanju je TYPE 1 hipervizor (native, bare-metal)
• izravno se izvršava na samom hardveru • kreiranje virtualnog hardverskog
okruženja od dobivenih fizičkih resursa preko mreže
● podloga operacijskom sustavu● specifično za ScaleMP, NumaScale
• VMware ESXi, Microsoft HyperV, Citrix XenServer
Virtualiziranihardver (H0, H1, H2)
Hardver
OS
TYPE 1
H1 H2
HipervizorS MPcale
Općenito
● TYPE 2 hipervizor (hosted)• izvršava se kao još jedan proces operacijskog
sustava domaćina• virtualizirano hardversko okruženje je podskup
hardverskih resursa domaćina• Oracle VirtualBox, VMWare Player
Hardver
Host OS
Hipervizor
OS OS OS
TYPE 2
Virtualiziranihardver
Općenito
fizičko računalo
Apl.
OS
Apl.
OS
Apl.
OS
virtualna računala
fizička računala
virtualno računalo s agregiranim resursima
Apl.
OS
ScaleMP u Srcu
• 8 x HP ProLiant SL230s Gen8• Karakteristike svakog čvora
● 2 x Intel Xeon E5-2670 v2 (Ivybridge)● 2 x 10 CPU jezgara● 256 GB RAM● 500 GB diskovnog prostora
ScaleMP u Srcu
• Mellanox SX 6025 preklopnik● Infiniband standard● FDR, 4x, 56 Gb/s● široko korišten u računarstvu visokih performansi● omogućava visoku propusnost uz male latencije● podržava RDMA (engl. remote direct memory access)
● izravni pristup memoriji drugog čvora bez posredovanja njegovog procesora
ScaleMP u Srcu
S MPcale
CentOSMellanox SX 6025
Hipervizor
ScaleMP u Srcu
● Agregirani veliki virtualni poslužitelj:● 8 čvorova, 16 procesora, 160 procesorskih jezgara● 2 TB RAM (iskoristivo 1,8 TB)
● 10% radne memorije ScaleMP koristi za cache● 3,6 TB /scratch
● RAID-0 polje sastavljeno od diskova čvorova
ScaleMP u Srcu
● Što smo dobili?● višeprocesorski sustav s velikom količinom distribuirane
dijeljene memorije● sastavljen od „običnog“, lako dobavljivog hardvera
● x86 arhitektura, relativno lako proširiv● memorijska arhitektura kombinacija NUMA i COMA
● operacijski sustav CentOS● razumije specifičnosti arhitekture
Arhitektura NUMA COMA
UMA
• engl. Uniform memory access• Karakteristična danas za stolna
računala, prijenosnike● Sabirnica dijeljena među
procesorima koji jednakim performansama pristupaju memoriji
● SMP (engl. Symmetric Multiprocessing)
● Dodavanjem novog procesora, povećano opterećenje na sabirnicu FSB (engl. front shared bus)
● loša skalabilnost
CPU CPU
Shared bus (FSB)
Memory
UMAApplication
NUMA
● engl. Non-Uniform Memory Access
• Karakteristična za HPC čvorove
● višeprocesorski sustavi
• Ukupna memorija je distribuirana između procesora
• Svaki procesor ima direktan pristup samo dijelu memorije
● lokalna memorija (engl. local memory)
● najbrže vrijeme pristupa
CPU CPU
Memory1/2
NUMA
Memory2/2
interconnect
local remote
Application
NUMA
● Procesori su međusobno povezani (engl. interconnect) brzim vezama
• Memorija susjednog procesora je udaljena memorija (engl. remote memory)
● sporije vrijeme pristupa
• Nejednolika vremena pristupa različitim dijelovima memorije
CPU CPU
Memory1/2
NUMA
Memory2/2
interconnect
local remote
Application
NUMA
● ScaleMP NUMA sustav ima još jednu međusobnu vezu● veza s procesorom u susjednom čvoru● memorija je distribuirana i između čvorova● još sporije vrijeme pristupa
CPU CPU
Memory Memory
CPU
Memory
interconnect2
remote2Applicationnode1 node2
interconnect1
COMA
• engl. Cache-only memory architecture• „Attraction memory“ djeluje kao velika
lokalna priručna memorija (engl. cache memory)
● Podatkovni skup aplikacije u izvršavanju se migrira ili replicira u priručne memorije
● prednost u odnosu na NUMA gdje je distribucija podataka statička
• Zbog nestandardnog sklopovlja razvijeni su samo prototipovi
Attractionmemory
Attractionmemory
interconnectCPU CPU
coherence logic
Memory Memory
ScaleMP NUMA COMA
● Primjer za dva čvora
Core1 Core10
L1 L2 L1
MC1 MC2 MC3 MC4
RAMRAM
L2
Core10
L1 L2 L1
MC1 MC2 MC3 MC4
L2
L3
8 x 16 GB
CPU1 CPU2
QPI
........
RAMRAMRAMRAM
8 x 16 GB
RAMRAM
Core1
HP SL230 Gen8
Core1 Core10
L1 L2 L1
MC1 MC2 MC3 MC4
RAMRAM
L2
L3
Core10
L1 L2 L1
MC1 MC2 MC3 MC4
L2
L3
8 x 16 GB
CPU1 CPU2
QPI
........
RAMRAMRAMRAM
8 x 16 GB
RAMRAM
Core1
HP SL 230 Gen8
Infiniband RDMA
L3
COMAmemory
COMA memory
S MPcale
10%
256 GB 256 GB
10%
ScaleMP NUMA COMA
● Čvor se sastoji od dva procesora● Procesor ima:
● 10 procesorskih jezgara● privatna L1 i L2 priručna memorija veličina 32 KB i 256 KB
respektivno● dijeljena L3 priručna memorija veličine 25 MB
● lokalnu memoriju 8 • 16 GB = 128 GB ● upravlja s 4 memorijska kontrolera
● realno: 128 GB umanjeno za 200(10% ukupne)/8/2 GB● ScaleMP koristi za priručnu memoriju između čvorova
ScaleMP NUMA COMA
● QPI – Intel QuickPath Interconnect● maksimalna propusnost od 12 GB/s u jednom smjeru● prijenos cache linija veličine 64 byte● izravan cache-to-cache prijenos
● usklađivanje priručne memorije između procesora MESIF protokolom
● svaka cache linija ima asocirano stanje (M – Modified, Exclusive – E, Shared – S, Invalid – I, Forward – F)
● LLC (engl. last level cache) kontroler osluškuje (engl. snoop) adresnu sabirnicu i ažurira stanja linija
● cc-NUMA (cache coherent NUMA)
ScaleMP NUMA COMA
● Infiniband R-DMA● maksimalna propusnost od 56 Gb/s
● hipervizor usklađuje priručnu memoriju (COMA) sličnim principima kao i procesor
● directory based cache coherence● prenose se 4 KB cache linije● različiti prefetch algoritmi (DSRAM, LBC, NASRAM)
● heuristika pristupa memoriji udaljenog čvora● donose odluku o prijevremenom prijenosu podataka (engl.
memory prefetch)
Što NUMA znači za poslove?
● Na procesorske jezgre se raspoređuju
● dretva (engl. threads)● djeca procesi (engl. child
process)● Raspoređuje ih Linuxov
raspoređivač poslova (engl. task scheduler)
● automatski algoritmi ne rade dobro!
CPU CPU
Memory Memory
CPU
Memory
node1 node2
Application
Što NUMA znači za poslove?
● Potrebno ručno raspoređivati aplikacije na jezgre (engl. pinning)
● u HPC-u preporučljivo● Minimizirati broj pristupa
procesa/dretve udaljenoj memoriji● u susjednom procesoru● u susjednom čvoru
● Operacijski sustav mora podržavati NUMA arhitekturu
CPU CPU
Memory Memory
CPU
Memory
node1 node2
Application
Što NUMA znači za poslove?
• Primjeri loše raspoređenih aplikacija:
128 GB
C1 C10.... C11 C20....QPI
128 GB RAM
C1 C10.... C11 C20....QPI
Application3 threads
C21 C40....IB
node1
node2node1
128 GB
128 GB 128 GB 128 GB
Application, 2 threads
Što NUMA znači za poslove?
• Primjeri loše raspoređenih aplikacija:
.... C11 ....QPI
128 GB RAM
node1
128 GB
Application, 2 threads
C1 C10
128 GB
C20
Što NUMA znači za poslove?
● likwid-bench (copy, clcopy)● Promatrati u relativnim, ne apsolutnim brojkama
Core1 Core10
L1 L2 L1
MC1 MC2 MC3 MC4
RAMRAM
L2
L3
Core10
L1 L2 L1
MC1 MC2 MC3 MC4
L2
L3
CPU1 CPU2
QPI
........
RAMRAMRAMRAMRAMRAM
Core1 Core1 Core10
L1 L2 L1
MC1 MC2 MC3 MC4
RAMRAM
L2
L3
CPU3
....
RAMRAM
Infiniband RDMA
35 GB/s
18 GB/s10 GB/s
7,5 GB/s
2,5 GB/sApplication node1 node2
Što NUMA znači za poslove?
• Dvije paralelne paradigme:• paralelizam dijeljenjem memorije• paralelizam razmjenom poruke
• Višeprocesne aplikacije moraju razmijenjivati poruke
● međusobno nezavisni, izolirani memorijski prostor
● eksplicitni IPC (engl. inter-process communication) mehanizmi
● MPI_Send(), MPI_Recv(), MPI_Scatterv()● koriste se dodatni međuspremnici
(memorija)● MPICH, MVAPICH, OpenMPI
MPI Application (4 processes)
mem2 mem3 mem4mem1
Što NUMA znači za poslove?
• Višedretvene aplikacije dijele isti memorijski prostor
• jednostavna razmjena podataka čitanjem i pisanjem u iste varijable
● u potpunosti iskorištavaju prednosti koje sustav nudi: usklađenost priručne memorije, alokacija i dijeljenje velikih količina memorije (256 GB, 512 GB, 1TB) pri izvršavanju aplikacije (engl. runtime memory)
• pthreads, OpenMP
mem1
OpenMP, pthreads application(4 threads)
Što NUMA znači za poslove?
• Procesi/dretve se moraju optimalno rasporediti na CPU jezgre kako bi se što efikasnije izvršavali
• Posao zahtijeva 10 CPU jezgara → treba se rasporediti na jedan procesor
● lokalna memorija, najbrži pristup
• Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor
● lokalna memorija, najbrži pristup
• Posao treba 256 GB memorije (20 CPU jezgara) → treba se rasporediti na jedan čvor
● procesori međusobno razmijenuju podatke preko QPI-ja ● brže međusobne veze
Podrška operacijskog sustava
NUMA topologija
• Kako operacijski sustav CentOS vidi Srce ScaleMP NUMA?• Generirano s lstopo (hwloc)
NUMA topologija
NUMA topologija
• Operacijski sustav dijeli ukupnu memoriju na NUMA čvorove (engl. NUMA nodes)
• NUMA čvoru asocirano ležište procesora (engl. socket)● jedan socket, jedan procesor● procesor je skup jezgara (engl. cores)● „broj jezgara po NUMA čvoru“
• Dodijeljena memorija je lokalna za asocirane jezgre● izravan, najbrži i jednoliki pristup
• NUMA čvorovi su grupirani u Group● pripadaju istom fizičkom čvoru
• Terminologiju (socket, cores, NUMA node) koriste alati
NUMA topologija
C0 C9 C10 C19
NUMAnode0
NUMAnode1
111 GB 118 GB
Group0
C20 C29 C30 C39
NUMAnode2
NUMAnode3
111 GB 118 GB
Group1
Machine
....IB
QPI QPI
NUMA udaljenost
• Dva NUMA čvora koja pripadaju istoj grupi imaju minimalnu NUMA udaljenost (engl. distance)
• numactl -H (primjer za šest NUMA čvorova)
node 0 1 2 3 4 5 6 0: 10 20 254 254 254 254 254 1: 20 10 254 254 254 254 254 2: 254 254 10 20 254 254 254 3: 254 254 20 10 254 254 254 4: 254 254 254 254 10 20 254 5: 254 254 254 254 20 10 20 6: 254 254 254 254 254 20 10
NUMA udaljenost
• Alokacija memorije je određena memorijskom politikom (engl. memory policy)
• Procesi na NUMA sustavu imaju automatski dodijeljenu local allocation memorijsku politiku
● ne uzrokuje alokaciju memorije već definira ponašanje sistema pri alokaciji memorije za virtualnu adresu
● dretva/proces „dodirivanjem“ ili pisanjem u virtualnu adresu inicira alokaciju
● first-touch policy
• Proces će prvo koristiti lokalnu memoriju za spremište● potom će koristiti prvu najbližu, određenu prema NUMA
udaljenosti● npr. proces treba > 111 GB → alokacija memorije susjednog
procesora
Raspoređivanje procesa
• procesu se postavlja CPU afinitet (engl. affinity)● svojstvo Linuxovog raspoređivača poslova da proces
rasporedi na točno definirane procesorske jezgre ● proces se „zaključa za jezgru“ (engl. process/thread pinning) i
tijekom svog izvršavanja ju ne napušta
Raspoređivanje procesa
• koristi se likwid-pin alat• raspoređivanje aplikacije na skup procesorskih jezgara
likwpid-pin -c C0,C1,C2 naredba {argumenti}likwid-pin -c C0-C4 naredba {argumenti}
Raspoređivanje procesa
• Idealno raspoređivanje procesa:● na slobodne (engl. idle) jezgre ● izbjegavanje nepotrebnih međuveza
● korištenje lokalne memorije● zahtijeva poznavanje NUMA topologije sustava
Raspoređivanje procesa
• numabind alat● razvio ScaleMP● dva načina rada:
● normal: optimalno raspoređivanje procesa prema pravilima u konfiguracijskoj datoteci● potrebno unaprijed znati što će se sve pokretati
● offset: analiziranje trenutnog opterećenja sustava i davanje prijedloga za raspoređivanje novih procesa● iskoristili za podnošenje poslova
● poznaje NUMA topologiju sustava
Raspoređivanje procesa
• Primjer: zahtjev za 40 slobodnih jezgara
% numabind --offset 4080,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
Podnošenje poslova
Uvod
• Prilikom podnošenja poslova kombinirali smo numabind i likwid-pin alate
● numabind servira likwid-pin slobodne jezgre koje on iskorištava za raspoređivanje procesa
● Automatizirano optimalno raspoređivanje poslova● ne mora se poznavati NUMA topologija● ne mora se znati zauzeće jezgara niti ručno navoditi slobodne
jezgre
Serijski posao
●
#$ -N serial-vsmp#$ -q vsmp-test.q#$ -pe vsmp 20#$ -cwd
● Posao zahtijeva jednu jezgru i veliku količinu memorije ● SGE atributi
Serijski posao
● SGE atributi
# Setting stacksize to unlimited.ulimit -s unlimited
# Use RAM as scratchexport TMPDIR=”/ramfs/$TMPDIR”
# Run the programexport CORES=$(numabind --offset $NSLOTS)likwid-pin -q -C $CORES NPB.big
● SGE atributi
Pthreads (Gaussian) posao
● SGE atributi
#$ -N gaussian-test.vsmp#$ -q vsmp-test.q#$ -pe vsmp 10#$ -cwd
● SGE atributi
Pthreads (Gaussian) posao
● Pokretanje aplikacije
# Setting stacksize to unlimited.ulimit -s unlimited
# Use RAM as scratchexport TMPDIR=”/ramfs/$TMPDIR”
# Run the programexport CORES=$(numabind --offset $NSLOTS)likwid-pin -q -c $CORES dog09 test.com
OpenMP posao
● SGE atributi
#$ -N lu.C.5-vsmp#$ -q vsmp-test.q#$ -pe vsmp 5#$ -cwd
● SGE atributi
OpenMP posao
● Pokretanje aplikacije
# Setting stacksize to unlimited.ulimit -s unlimited
# Use RAM as scratchexport TMPDIR=”/ramfs/$TMPDIR”
# Run the programexport OMP_NUM_THREADS=$NSLOTSexport CORES=$(numabind --offset $NSLOTS)likwid-pin -q -c $CORES ./lu.C
MPI posao
● SGE atributi
#$ -N lu.D.16-vsmp#$ -q vsmp-test.q#$ -pe vsmp 16#$ -cwd#$ -v VSMP_PLACEMENT=PACKED
● SGE atributi
MPI posao
● Pokretanje aplikacije
# Setting stacksize to unlimited.ulimit -s unlimited
# Use RAM as scratchexport TMPDIR=”/ramfs/$TMPDIR”
# Run the programmpiexec -np $NSLOTS ./lu.D.16
Srce politikom otvorenog pristupa široj javnosti osigurava dostupnost i korištenje svih rezultata rada Srca, a prvenstveno obrazovnih i stručnih informacija i sadržaja nastalih djelovanjem i radom Srca.
Ovo djelo je dano na korištenje pod licencom Creative Commons Imenovanje-Nekomercijalno 4.0 međunarodna.
www.srce.unizg.hr creativecommons.org/licenses/by-nc/4.0/deed.hr www.srce.unizg.hr/otvoreni-pristup
Hvala na pažnji!
Pitanja?