53
Sustav ScaleMP Daniel Vrčić Sveučilišni Računski Centar (Srce)

Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Sustav ScaleMP

Daniel Vrčić

Sveučilišni Računski Centar (Srce)

Page 2: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Sadržaj

• Sustav ScaleMP• Arhitektura NUMA-COMA• Podrška operacijskog sustava• Podnošenje poslova

Page 3: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 4: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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...)

Page 5: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 6: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 7: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 8: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 9: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 10: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

ScaleMP u Srcu

S MPcale

CentOSMellanox SX 6025

Hipervizor

Page 11: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 12: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 13: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Arhitektura NUMA COMA

Page 14: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 15: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 16: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 17: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 18: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 19: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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%

Page 20: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 21: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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)

Page 22: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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)

Page 23: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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

Page 24: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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

Page 25: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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

Page 26: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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

Page 27: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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

Page 28: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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

Page 29: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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)

Page 30: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Š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

Page 31: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Podrška operacijskog sustava

Page 32: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

NUMA topologija

• Kako operacijski sustav CentOS vidi Srce ScaleMP NUMA?• Generirano s lstopo (hwloc)

Page 33: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

NUMA topologija

Page 34: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 35: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 36: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 37: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 38: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 39: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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}

Page 40: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 41: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 42: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 43: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Podnošenje poslova

Page 44: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 45: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Serijski posao

#$ -N serial-vsmp#$ -q vsmp-test.q#$ -pe vsmp 20#$ -cwd

● Posao zahtijeva jednu jezgru i veliku količinu memorije ● SGE atributi

Page 46: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 47: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

Pthreads (Gaussian) posao

● SGE atributi

#$ -N gaussian-test.vsmp#$ -q vsmp-test.q#$ -pe vsmp 10#$ -cwd

● SGE atributi

Page 48: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 49: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

OpenMP posao

● SGE atributi

#$ -N lu.C.5-vsmp#$ -q vsmp-test.q#$ -pe vsmp 5#$ -cwd

● SGE atributi

Page 50: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 51: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

MPI posao

● SGE atributi

#$ -N lu.D.16-vsmp#$ -q vsmp-test.q#$ -pe vsmp 16#$ -cwd#$ -v VSMP_PLACEMENT=PACKED

● SGE atributi

Page 52: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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

Page 53: Sustav ScaleMP - Srce · lokalna memorija, najbrži pristup •Posao treba 128 GB memorije (10 CPU jezgara) → treba se rasporediti na jedan procesor lokalna memorija, najbrži pristup

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?