Professional Documents
Culture Documents
Uvod Super Kompjuteri Multuthread Paraleno Procesiranje
Uvod Super Kompjuteri Multuthread Paraleno Procesiranje
Uvod
Uvod
Teorijski uvod Lockovi
Uvod i konflikti
Thread
I
I
Rešenje je
Konflikt meprona d̄eno u paralelizmu
d̄u threadovima – ukoliko
ne postoji uvod̄enjem
radeviše
nad
jezgara u jedan procesor
različitim podacima ili nad disjunktnim celinama istih
podataka/resursa
I U obe prethodne arhitekture je postojala (i postoji)
mogućnost multi-threadinga
I Konflikt nastaje kada više threadova želi da vrši operacije
I nad istim pa
Od sada podskupom resursa
na dalje posmatraćemo sisteme koji
podržavaju multi-threading
Uvod
Bagovi
I
I Rešenje
Zbog togaje bagove
pronad̄eno
nije ulako
paralelizmu – uvod̄enjem više
reprodukovati
jezgara u jedan procesor
I
I Postoje problemi kao
U obe prethodne deadlock,
arhitekture livelock i (i
je postojala contention
postoji)
mogućnost multi-threadinga
I Debugging multi-thread programa je generalno veoma
I Od sada pa na dalje posmatraćemo sisteme koji
težak
podržavaju multi-threading
Uvod safety
Thread
Uvod arhitekture
Primer
CPU
I Dostignut teoretski maksimum single-thread performansi
2002. CORE 1 CORE 2 CORE 8
I RešenjeL1jeCACHE L1 CACHE
pronad̄eno L1d̄enjem
u paralelizmu – uvo CACHE više
jezgara uL2 jedan
CACHE procesor
L2 CACHE L2 CACHE
UvodHaswell-E
Intel
Uvod situacije
Primer
Uvod
writeLog funkcija
I Od
Šta sada pa na ovde?
je problem dalje posmatraćemo sisteme koji
podržavaju multi-threading
Uvod
writeLog funkcija – cont’d
Uvodpokušaj
Prvi
Uvod
Atomske operacije
voidUreleaseLock(bool
obe prethodne arhitekture
*lock) {je postojala (i postoji)
I
mogućnost
*lock multi-threadinga
= false;
}
I Od sada pa na dalje posmatraćemo sisteme koji
podržavaju multi-threading
voidUreleaseLock(bool
obe prethodne arhitekture
*lock) {je postojala (i postoji)
I
mogućnost
*lock multi-threadinga
= false;
}
I Od sada pa na dalje posmatraćemo sisteme koji
podržavaju multi-threading
Uvod
Problemi sa TATAS
Uvod
Rešenje stampeda: TATAS
I Dostignutkoristiti
Možemo teoretski maksimum
nekakav single-thread
back-off algoritam:performansi
2002.
I Posmatramo lock s iteracija
I Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
I Ako se lock ne oslobodi, čekamo lokalno w iteracija (bez
jezgara u jedan procesor
posmatranja locka!)
I U obe prethodne arhitekture je postojala (i postoji)
mogućnost multi-threadinga
I Generalno, vrednosti s i w biramo u zavisnosti od problema
I iOd
to najčešće
sada pa na koristeći ograničeni eksponencijalni
dalje posmatraćemo sisteme koji back-off
(back-off se resetuje kada
podržavaju multi-threading se lock dobije)
Uvod
Queue-based lockovi
Uvod lock
MCS
I Od Glava
sada pa na dalje posmatraćemo sisteme koji Rep
podržavaju multi-threading Lokalni flag
void2002.
releaseMCS(mcs *lock, QNode *qn) {
if(lock->tail = qn) {
I Rešenje je pronad̄eno u paralelizmu
if(CAS(&lock->tail, qn, NULL)) –return;
uvod̄enjem više
}jezgara u jedan procesor
while(qn->next == NULL) { }
U obe prethodne= arhitekture
Iqn->next->flag true; je postojala (i postoji)
} mogućnost multi-threadinga
Uvod
Proširimo problem
I
I U obe prethodne
Čitanje bez lockovaarhitekture je postojala
– u slučajevima (i postoji)
gde se malo piše a
mogućnost
puno multi-threadinga
čita, koriste se sheme kao verzioni brojevi (version
number schemes)
I Od sada pa na dalje posmatraćemo sisteme koji
podržavaju multi-threading
Uvod materijal
Dodatni
I
I U obe prethodne arhitekture je postojala (i postoji)
http://www.cs.rochester.edu/~scott/papers/1991_TOCS_
mogućnost–multi-threadinga
synch.pdf orignialni Mellor-Crummey i Scott rad iz 1991.
u kojem uvode MCS lockove
I Od sada pa na dalje posmatraćemo sisteme koji
podržavaju multi-threading
Uvod
Uvod
Teorijski uvod Lockovi
• Skakanje
2002. – na osnovu predikcije!
• Širina reči instrukcijskog keša danas – 128 do 192
I Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
bita – tipično nekoliko instrukcija
jezgara u jedan procesor
• U slučaju da je RISC, tada su cele instrukcije u reči
(bloku)
I U obe prethodne arhitekture je postojala (i postoji)
• Akomogućnost
je CISC multi-threadinga
tada ne moraju instrukcije na početku
iIna kraju široke reči da budu cele!!!
Od sada pa na dalje posmatraćemo sisteme koji
• Moramo damulti-threading
podržavaju znamo granice instrukcija, a to se
može uraditi tek nakon bar delimičnog
dekodovanja!!
Uvod
Teorijski uvod Lockovi
3
Uvod
Teorijski uvod Lockovi
4
Uvod
Teorijski uvod Lockovi
• Kako to uraditi?
jezgara u jedanPrediktor
procesor nam dozvoljava da se
zalećemo i da radimo prefetching i delimično
I U obe prethodne arhitekture je postojala (i postoji)
dekodovanje većeg broja reči instrukcijskog keša u
mogućnostFIFO
kompleksni multi-threadinga
(in order issue) zbog paralelnog
I Od sada pagranica
određivanja instrukcija
na dalje posmatraćemo sisteme koji
• Radimo prefetching
podržavaju većeg broja bazičnih blokova na
multi-threading
dinamičkom tragu još pre instrukcijskog prozora!!!
5
Uvod
Teorijski uvod Lockovi
6
Uvod
Teorijski uvod Lockovi
Predobrada
Uvod za instrukcijski prozor
• Rešenje: dohvatati reči sa instrukcijama unapred
I Dostignut teoretski maksimum single-thread performansi
nekoliko
2002. bazičnih blokova i obezbediti brže
određivanje granica instrukcija nego što će se na
kraju ubacivati
I Rešenje je pronaud̄eno
prozor – Intel 50%
u paralelizmu – uvoviše
d̄enjem više
• Svejezgara
se touradi
jedan procesor
u pipeline-u: prediktor određuje šta
se
I Uubacuje, u pipeline-u
obe prethodne arhitekturese određuju
je postojala granice
(i postoji)
instrukcija
mogućnosti multi-threadinga
zatim radi dekodovanje, a na kraju
postoji i queue mikroinstrukcija koje se tek onda
I Od sada pa na dalje posmatraćemo sisteme koji
ubacuju u ROB, odnosno instrukcijski prozor
podržavaju multi-threading
(ugrađenu dataflow mašinu)
7
Uvod
Teorijski uvod Lockovi
• U obe
IJedno prethodnejearhitekture
dohvatanje dohvatanjeje postojala
više (i postoji)
bazičnih blokova – gube
semogućnost multi-threadinga
granice bazičnih blokova
• ITrace cachepaindeksira
Od sada na dalje na osnovu startne
posmatraćemo adresekoji
sisteme i sledećih n
predikcija grananja
podržavaju multi-threading
• Korišćeno od Pentium 4 procesora za čuvanje dekodovanih
mikrooperacija 8
Uvod
Teorijski uvod Lockovi
9
Uvod
Teorijski uvod Lockovi
11
Uvod
Teorijski uvod Lockovi
13
Uvod
Teorijski uvod Lockovi
Uvod 14
Teorijski uvod Lockovi
izvršavanje
I U obe prethodne arhitekture je postojala (i postoji)
• Load
mogućnost
i Storemulti-threadinga
mogu spekulativno u odnosu na
ostale instrukcije
I Od sada pa na dalje posmatraćemo sisteme koji
podržavaju multi-threading
Uvod 15
Teorijski uvod Lockovi
Uvod
Konzervativno O-o-O Load Izvršavanje
sd x1, (x2)
I Dostignut teoretski maksimum single-thread performansi
2002. ld x3, (x4)
Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
I
• Može load pre store-a ako se za adrese zna da
jezgara u jedan procesor
je
x4 != x2
• Svaka load adresa se poredi sa adresama svih
I U obe prethodne arhitekture je postojala (i postoji)
mogućnost multi-threadinga
prethodno nekomitovanih store operacija
• Ne raditi
I Od sadaload, ako je
pa na dalje bilo koja od
posmatraćemo prethodnih
sisteme koji
adresa store-a
podržavaju nepoznata
multi-threading
Uvod 16
Teorijski uvod Lockovi
• Pretpostavimo
I Rešenje je pronada je ux4
d̄eno != x2 – uvod̄enjem više
paralelizmu
• Izvrši
jezgara u jedan procesor
se load pre nego što je poznata store adresa
• Moraju se čuvatiarhitekture
I U obe prethodne sve nekomitovane
je postojala (i load/store
postoji)
adrese u programskom
mogućnost multi-threadingaredosledu
• Ako se dogodi da je x4==x2, obustavi load i sve
prateće
I Od sadainstrukcije (load exception)
pa na dalje posmatraćemo sisteme koji
podržavaju multi-threading
• => Velika kazna za grešku zbog netačne
pretpostavke o različitosti adresa
Uvod 17
Teorijski uvod Lockovi
18
Uvod
Teorijski uvod Lockovi
19
Uvod
Teorijski uvod Lockovi
Uvod
I Multithreading i Multicore
Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
jezgara u jedan procesor
20
Uvod
Teorijski uvod Lockovi
Uvod
Šta razmatramo kod Multithreading-a
I Dostignut teoretski maksimum single-thread performansi
• 2002.
Pregled Threading Algoritama
• Hyper-Threading
I Rešenje je pronad̄enoKoncepti
u paralelizmu – uvod̄enjem više
jezgara u jedan procesor
• Hyper-Threading Arhitektura
I U obe prethodne arhitekture je postojala (i postoji)
• Prednosti i mane
mogućnost multi-threadinga
21
Uvod
Teorijski uvod Lockovi
Uvod
Threading Algoritmi
• Time-slicing
– Dostignut
Procesorteoretski maksimum single-thread performansi
I
se prebacuje između niti u fiksnim
2002.
vremenskim intervalima.
– Rešenje
I Visoka cena, naročito
je prona ako je jedan
d̄eno u paralelizmu od
– uvo procesa
d̄enjem više u
stanju učekanja.
jezgara Fine grain
jedan procesor
• Switch-on-event
I U obe prethodne arhitekture je postojala (i postoji)
– mogućnost
Niti se menjaju u slučaju da se događa bilo koje
multi-threadinga
čekanje u niti koji se izvršava
I Od sada pa na dalje posmatraćemo sisteme koji
– podržavaju
Ako se čekaju podaci sa sporog izvora, CPU se
multi-threading
predaje nekom od drugih procesa (ne OS). Coarse
grain
22
Uvod
Teorijski uvod Lockovi
Uvod
Threading Algoritmi (2)
• Multiprocesiranje
I Dostignut teoretski maksimum single-thread performansi
– 2002.
Ukupan posao se distribuira na više procesora
– Značajan dodatni trošak
IRešenje je pronad̄eno u paralelizmu – uvod̄enjem više
• Simultaneous Multi-Threading (SMT)
jezgara u jedan procesor
I– UViše
obeniti se izvršavaju
prethodne na jejednom
arhitekture postojalaprocesoru
(i postoji) bez
izmene konteksta
mogućnost multi-threadinga
– Osnova za Intelovu Hyper-Threading tehnologiju.
I Od sada pa na dalje posmatraćemo sisteme koji
podržavaju multi-threading
23
Uvod
Teorijski uvod Lockovi
Uvod
Hyper-Threading Concept
• U svakom trenutku u vremenu, samo deo
I Dostignut teoretski maksimum single-thread performansi
procesorskih
2002.
resursa se koristi za izvršavanje
programskog kôda niti
I Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
• Neiskorišćeni resursi mogu biti istovremeno
jezgara u jedan procesor
iskorišćeni za paralelno izvršavanje druge
I U obe prethodne arhitekture je postojala (i postoji)
niti/aplikacije
mogućnost multi-threadinga
• Kod servera ili klijentskih računara često
I Od sada pa na dalje posmatraćemo sisteme koji
postoji puno niti, pa je veoma korisno
podržavaju multi-threading
24
Uvod
Teorijski uvod Lockovi
Quick Recall: Many Resources IDLE!
Uvod For an 8-way
superscalar.
Uvod
26
Uvod
Teorijski uvod Lockovi
Uvod
(a)USuperskalarni
I obe prethodneprocesor bez je
arhitekture multithreading-a
postojala (i postoji)
(b)mogućnost
Superskalarni procesor sa coarse-grain multithreading-om
multi-threadinga
(c) Superskalarni procesor sa fine-grain multithreading-om
I Od sada pa na dalje posmatraćemo sisteme koji
(d)podržavaju
Superskalarni procesor sa simultaneous multithreading-om
multi-threading
(SMT)
27
Uvod
Teorijski uvod Lockovi
Uvod
Hyper-Threading Arhitektura
• Prvo se pojavila kod Intel Xeon MP procesora
I Dostignut teoretski maksimum single-thread performansi
• Stvara
2002.iluziju kojom se jedan fizički procesor javlja
kao više (2) logička procesora
• Svaki logički
I Rešenje procesor
je prona ima
d̄eno u kopiju arhitekturalnog
paralelizmu – uvod̄enjem više
stanja
jezgara u jedan procesor
• Logički procesore dele jedan zajednički skup fizičkih
I U obe prethodne arhitekture je postojala (i postoji)
resursa za izvršavanje
mogućnost multi-threadinga
29
Uvod
Teorijski uvod Lockovi
Uvod
Hyper-Threading Arhitekture
• Operativni sistemi i korisnički konkurentni
I Dostignut teoretski maksimum single-thread performansi
programi
2002. mogu da rasporede procese ili niti na
logičke procesore kao da se raspoređuju na
I Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
multiprocesorski sistem sa istim brojem
jezgara u jedan procesor
fizičkih procesora
• Kako logički
I U obe procesori
prethodne mogu
arhitekture da koriste
je postojala (i postoji)deljene
mogućnost multi-threadinga
resurse:
I– Od
Cache,
sada izvršne jedinice,
pa na dalje Prediktore
posmatraćemo grananja,
sisteme koji
kontrolnumulti-threading
podržavaju logiku, OoO logiku, magistrale, fizičke
registre, ...
30
Uvod
Teorijski uvod Lockovi
Uvod
Prednosti
Dostignut
• Kod nekih
I teoretski
procesora jemaksimum single-thread performansi
2002.
dodatna površina na čipu
okoI 5%
Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
• Nemajezgara
gubitka performansi
u jedan procesor
ako je samo jedna nit
I U obe prethodne arhitekture je postojala (i postoji)
aktivna, a poboljšane
mogućnost multi-threadinga
performanse sa dve niti
(dva
I manja
Od sada nepovezana
pa na dalje posmatraćemo sisteme koji
DDG podržavaju
niti istovremeno)
multi-threading
• Bolje iskorišćenje resursa
32
Uvod
Teorijski uvod Lockovi
Uvod
Mane
• Da se iskoristi,
I Dostignut mora
teoretski da bude
maksimum konkurentni
single-thread performansi
program
2002.
I
– Rešenje
Niti nisujedeterminističke i mora pažljivi dizajn
pronad̄eno u paralelizmu – uvod̄enjem više
aplikacije
jezgara u jedan procesor
– Niti imaju dodatnu kontrolnu logiku
IU obe prethodne arhitekture je postojala (i postoji)
• Konflikti deljenih
mogućnost resursa – cache i memorija
multi-threadinga
pre svega
I Od sada pa na dalje posmatraćemo sisteme koji
• Ukupni dobitak
podržavaju je mali, ali će rasti sa
multi-threading
veličinama instrukcijskog prozora!
33
Uvod
Teorijski uvod Lockovi
Uvod Multicore
• Multiprocesori na
I Dostignut teoretski čipu single-thread performansi
maksimum
• UMA
2002.multiprocesori (symmetric
multiprocessing)
I Rešenje je pronad̄eno u paralelizmu – uvod̄enjem više
jezgara u jedan procesor
34
Uvod
Teorijski uvod Lockovi
35
Uvod
Teorijski uvod Lockovi
$ $
Bus
I Dostignut teoretski maksimum single-thread performansi
2002. Mem I/O devices
– Svaki
jezgara u jedan
procesor imaprocesor
jedan ili više svojih cache-eva
– Stavi podatke iz memorije u cache
U obe prethodne
–I Writeback arhitekture
cache: nemoj slati svejepodatke
postojala (i postoji)
preko bus-a u memoriju
mogućnost multi-threadinga
• Cache-evi smanjuju srednje kašnjenje memorijskog sistema
–I Automatska replikacija bliže procesoru
Od sada pa na dalje posmatraćemo sisteme koji
– Važnije za multiprocesor
podržavaju nego za jedan procesor: veća su kašnjenja
multi-threading
• Normalan uniprocesorski mehanizam za dohvatanje podataka
• Problem: Koherencija Cache-eva!
36
Uvod
Teorijski uvod Lockovi
I Rešenje je
1
pronad̄eno u paralelizmu – uvo d̄enjem više
I/O devices
2
jezgara u jedanu :5
procesor
Memory
• Processori mogu da vide
I U obe prethodne različitejevrednosti
arhitekture postojalau(inakon događaja 3
postoji)
• Sa write back cache-evima,
mogućnost vrednost upisana u memoriju zavisi od
multi-threadinga
toga koji cache i kada da upiše u memoriju
• Kako
I Odovo
sadapopraviti na bus-u:
pa na dalje Coherencesisteme
posmatraćemo Protocolkoji
– Upotrebiti
podržavajubus da emituje (broadcast) upise ili invalidacije
multi-threading
– Jednostavni protokoli zasnovani na braodcast-u na bus-u
– Bus može do 32- 64 processora (max)
37
Uvod
Teorijski uvod Lockovi
38
Uvod
Teorijski uvod Lockovi
Uvod
39
Uvod
Teorijski uvod Lockovi
40
Uvod
Teorijski uvod Lockovi
41
Uvod
Teorijski uvod Lockovi
42
Uvod
Teorijski uvod Lockovi
Uvod Budućnost
• TLP (Thread Level Paralelizam) i PLP (Process Level Paralelizam)
postaju neminovnost
I Dostignut u budućnosti
teoretski maksimumi favorizuju CMP
single-thread i SMT na
performansi
procesorima.
2002.
•Kako iskoristiti - KDP, ali se mora obezbediti i balansiranje
I Rešenje
opterećenja je pronad̄eno u paralelizmu – uvod̄enjem više
procesora
•SMT jezgara u jedan procesor
(Hyperthreading) se adaptira na broj procesa i dinamički –
hardverski i transparentno deli procesorske resurse prema
I U obe prethodne arhitekture je postojala (i postoji)
zahtevima 2 procesa.
•Kadamogućnost multi-threadinga
nema multiprocesnog rada, superskalari i SMT procesori su
bolji od jednostavnih procesora u CMP
I Od sada pa na dalje posmatraćemo sisteme koji
•Kompajleri i dalje igraju veliku ulogu – prevode tako da kod u
podržavaju multi-threading
instrukcijskom prozoru u svakom trenutku bude što paralelniji, ali
ograničenje je nepoznavanje svih zavisnosti u vreme prevođenja
44
Uvod
Teorijski uvod Lockovi
Bus
Uvod I7 - 4770
• 4I Haswell core-amaksimum single-thread performansi
Dostignut teoretski
• 2002.
8 thread-ova (2 po core-u)
• Niz vektorskih
I Rešenje je pronainstrukcija
d̄eno u paralelizmu – uvod̄enjem više
jezgara u jedan procesor
• Multiply-Add
• I U obe prethodne arhitekture je postojala (i postoji)
Enkripcija i digitalno potpisivanje
mogućnost multi-threadinga
u hardveru
postaju deo instrukcijskog seta
I Od sada pa na dalje posmatraćemo sisteme koji
• Grafičke funkcije visokog nivoa kao instrukcije
podržavaju multi-threading
– iako ima zaseban grafički procesor
46
Uvod