Upload
vandieu
View
257
Download
0
Embed Size (px)
Citation preview
. . . . . .
Višeprocesorski i paralelni sustavi
Izv. prof. dr. sc. Zoran KalafatićDoc. dr. sc. Tomislav Hrkać
[email protected], [email protected]
ZEMRIS, 2013/14
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 1 / 81
. . . . . .
Višeprocesorski i paralelni sustaviSadržaj predmeta
Klasifikacija arhitektura paralelnih računalnih sustava
Razine paralelizma
Paralelizam na razini instrukcije
Vektorska računala
Višeprocesorski sustavi
Dijeljena memorija i koherencija podataka
Prospojne mreže
Arhitektura grafičkih procesora
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 2 / 81
. . . . . .
Literatura...1 D. E. Culler, J. Pal Singh, A. Gupta,
Parallel Computer Architecture, A Hardware/Software Approach,Morgan Kaufmann Publishers, Inc. San Francisco, 1999.
...2 J.L. Hennessy, D.A.Patterson,Computer Architecture - A Quantitative Approach. 3. ed.,Morgan Kaufman Publishers, Inc., 2003.
...3 S. Ribarić, Građa računala, Arhitektura i organizacija računarskihsustava, Algebra, Zagreb, 2011.
...4 Michel Dubois, Murali Annavaram, Per Stenström, ParallelComputer Organization and Design, Morgan Kaufmann, 2012.
...5 Kayvon Fatahalian, CMU, Parallel Computer Architecture andProgramming (link)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 3 / 81
. . . . . .
Paralelni sustavUobičajena definicija paralelnog računala:
skup procesnih elemenata koji surađuju kako bi brzo riješiliračunski vrlo zahtjevne probleme
Neka tipična pitanja arhitekture paralelnih sustava:
dodjela resursaI broj procesnih elemenata (PE)I procesna moć pojedinog PEI veličina memorije
pristup podacima, komunikacija, sinkronizacijaI način suradnje PE i njihova komunikacijaI prijenos podataka među PEI apstrakcija i primitivi kooperacije
performansa, skalabilnostI utjecaj na performansuI ponašanje pri skaliranju sustava
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 4 / 81
. . . . . .
Arhitektura paralelnih sustavaUloga ”arhitekta” računalnih sustava (computer architect)
oblikovati i podesiti različite razine računalnog sustava u ciljupoboljšanja performanse i programabilnosti u okviru ograničenjaraspoložive tehnologije i cijene
Uvođenje paralelizma:
nudi alternativu povećanju performanse ubrzanjem radnog takta
logično je performansu sustava povećati raspodjelom posla naviše procesnih jedinica
ideja prisutna od početaka računarstva
korištena u računalima posebne namjene – super-računala
napredak tehnologije – dovođenje visoke performanse ”na stol”
kuda dalje ?
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 5 / 81
. . . . . .
UbrzanjeGlavna motivacija za korištenje paralelnih sustava: ubrzanje aplikacija(speedup)
Ubrzanje(p procesora) = Performansa(p procesora)Performansa(1 procesor)
Za konkretan računski problemPerformansa = 1/Vrijeme
Ubrzanje(p procesora) = Vrijeme(1 procesor)Vrijeme(p procesora)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 6 / 81
. . . . . .
Zašto se baviti paralelnim arhitekturama?
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 7 / 81
. . . . . .
Zašto paralelna obradaDo prije 10-tak godina
za posebno zahtjevne aplikacije za koje performansamikroprocesora nisu bile dovoljne
napredak u performansi mikroprocesora iz generacije u generaciju(Mooreov zakon, udvostručenje svakih 18 mjeseci)
nije se isplatilo paralelizirati kôd, jer se ubrzanje ostvarivalo i beznapora programera
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 8 / 81
. . . . . .
Performansa jednoprocesorskih sustavaDo prije 10-tak godina stalni napredak...1 povećanje frekvencije takta...2 iskorištavanje paralelizma na razini instrukcija
I međusobno neovisne instrukcije mogu se izvršavati simultano (uzodgovarajuće sklopovlje)
I ta se nezavisnost instrukcija može ustanoviti tijekom prevođenjaprograma (VLIW)
I ispitivanje i iskorištavanje nezavisnosti instrukcija može se obaviti itijekom izvođenje (superskalarno izvođenje)
I stalan napredak tehnologije omogućuje sve više resursa(tranzistora), koji omogućuju sve sofisticiranija rješenja upravljačke iizvršnih jedinica, povećanje priručne memorije i sl.
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 9 / 81
. . . . . .
Primjene paralelnog računarstvaprimjena računarstva u znanostima (scientific computing)
I simulacija fizikalnih, kemijskih i bioloških fenomena koje je teško iliskupo promatrati empirijski
I izuzetno zahtjevni proračuni – najveći zahtjevi za performansomI modeliranje klimatoloških promjena, evolucije galaksija, strukturematerijala, analiza strukture DNA, . . .
inženjerske primjene (engineering computing)I modeliranje naftnih bušotinaI simulacija sudara, analiza efikasnosti motora, analizaelektromagnetskih utjecaja
I analiza lijekova, molekularna analizaI vizualizacija, filmska industrija,. . .
poslovne primjene (comercial computing)I propusnost – broj transakcija u minuti
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 10 / 81
. . . . . .
Zahtjevne aplikacije
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 11 / 81
. . . . . .
Veliki računski centri i superračunala
BlueGene/L (No.1 2008/2009)Lawrence Livermore National Laboratory
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 12 / 81
. . . . . .
Kraj povećanja jednoprocesorske performanseograničena mogućnost iskorištenja paralelizma na razini instrukcije
resursi rastu, ali teško je naći dovoljan broj nezavisnih instrukcijakoje bi ga iskoristileistovremeno izvođenje više od 5 instrukcija (u jednominstrukcijskom slijedu!) je vrlo rijetko moguće, pa se daljnjaubrzanja ne mogu postići na ILP razini
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 13 / 81
. . . . . .
Kraj povećanja jednoprocesorske performansenemogućnost daljnjeg povećanja frekvencije (”power wall”)
dinamička snaga po tranzistoru ∝ f × U2
snaga → toplinasnaga je postala najznačajniji faktor u oblikovanju modernihračunala
Intel Core i7 (desktop CPU): 95WNVIDIA GTX 780 GPU: 250WProcesor u mobitelu: 1-2WSuperračunalo: MW
Mikrovalna pećnica: 700W
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 14 / 81
. . . . . .
Kraj povećanja jednoprocesorske performanse
daljnje povećanje performanse kroz višejezgrenost→ nema više ”izvlačenja” za programere
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 15 / 81
. . . . . .
Zašto paralelne arhitekture?Odgovor danas:
nema nam druge :-)
to je sada jedini način za postizanje ubrzanja aplikacija!
moramo naučiti kako graditi aplikacije koje će iskoristiti mogućnostivišeprocesorskih arhitektura koje su danas sveprisutne
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 16 / 81
. . . . . .
Procesori za stolna i prijenosna računalaIntel Haswell (2013) – quad core CPU + multi-core GPU na čipu
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 17 / 81
. . . . . .
Grafičke kartice i GPGPUNVIDIA Kepler GTX 780 GPU (2013)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 18 / 81
. . . . . .
Mobilni uređajiEnergetska učinkovitost određuje arhitekturu mobilnih uređaja
Apple A7 (iPhone 5s, iPad)Dual-core CPU + GPU + image
processor
NVIDIA Tegra 4Quad core CPU + GPU +
image processor
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 19 / 81
. . . . . .
SuperračunalaPrvi na listi Top500.org (11/2013): Tianhe-2 (MilkyWay-2)National Super Computer Center in Guangzhou, China
Cores 3,120,000Linpack 33,862.7 TFlop/sPower 17,808.00 kWMemory 1,024,000 GBInterconnect TH Express-2OS Kylin Linux
16.000 čvorova, svaki se sastoji od 2 procesora Intel Xeon (IvyBridge) i 3 koprocesora Xeon Phiukupno 3.120.000 jezgrisvaki čvor ima 88 GiB memorije (64 GiB za Xeone i 8 GiB za svakiXeon Phi) → ukupno 1.34 PiB
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 20 / 81
. . . . . .
Zelena superračunalaPrvi na listi Green500.org (11/2013): TSUBAME-KFCGSIC Center, Tokyo Institute of Technology
4,5 GFLOPS/W
ukupno 27,78 kW
svaki čvor sadrži 2 procesora Intel Ivy Bridge i 4 grafičkaprocesora NVIDIA Kepler GPUs
za usporedbu, Tianhe-2 postiže učinkovitost od 1.9 GFLOPS/W
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 21 / 81
. . . . . .
Paralelizam na razini instrukcije
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 22 / 81
. . . . . .
Protočno izvođenje instrukcijarazlaganje izvođenja instrukcije na faze koje se mogu obavljatiistovremeno (za različite instrukcije)
problemi s hazardima u protočnoj strukturi (”protočni mjehurići”) –strukturni (resursni), upravljački (uvjetno grananje), podatkovni
napredni prevodioci – preslagivanje instrukcija
sofisticirane tehnike predviđanja grananja
spekulativno izvršavanje
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 23 / 81
. . . . . .
Protočna arhitektura
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 24 / 81
. . . . . .
Protočna arhitektura
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 25 / 81
. . . . . .
Superskalarno izvršavanje instrukcijaprocesor sadrži veći broj funkcijskih jedinica na čipu (integer, FP,upravljanje memorijom, upravljanje grananjima)
procesor pribavlja veći broj različitih instrukcija koje seistovremeno izvršavaju na različitim funkcijskim jedinicama kadgod je to moguće (dinamičko raspoređivanje!)
opskrba procesora instrukcijama i podacima mora biti dovoljnobrza kako bi se procesni resursi učinkovito koristili
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 26 / 81
. . . . . .
Izvršavanje instrukcija van programskog slijedainstrukcija se pribavlja i pohranjuje u red (instruction buffer)
instrukcija čeka trenutak kada su raspoloživi njeni operandi, i tadase prosljeđuje odgovarajućoj funkcijskoj jedinici
rezultati se pohranjuju u red i čekaju svoj red za zapisivanje
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 27 / 81
. . . . . .
Raspoređivanje instrukcija prilikom prevođenjavrlo duga instrukcijska riječ (VLIW, very long instruction word)
superskalarno izvođenje, kao i izvođenje van programskog slijedazahtijeva vrlo složenu sklopovsku podršku za dinamičkoodređivanje koje se instrukcije mogu istovremeno izvoditi
slijed izvođenja instrukcija, te moguće istovremeno izvođenjeodređuje se prilikom prevođenja
sklopovlje može biti jednostavnije, složenost preuzima prevodilac
u VLIW pristupu instrukcija kodira veći broj operacija koje se mogusimultano izvršavati u većem broju funkcijskih jedinica
Explicitly Parallel Instruction Computing (EPIC) – Intel Itanium
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 28 / 81
. . . . . .
Primjer raspoređivanja resursa
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 29 / 81
. . . . . .
Primjer paralelnog računanjaDiskretna Fourierova transformacija (DFT)
X(k) = 1
N
N−1∑n=0
x(n)e−j2Πnk/N
Brza Fourierova transformacija (FFT)I koristi se restrukturiranje slijeda operacija
I prikaz operacija leptirastim dijagramom (butterfly structure)I graf protoka podataka (data flow graph)I dvije operacije:⊕
: Im⊕
In = Im + In, 1 vremenska jedinica⊗: Im
⊗In = (Im − In)e−j 2Πk
8 , 5 vrem. jedinica
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 30 / 81
. . . . . .
Graf protoka podatakas(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 31 / 81
. . . . . .
Proizvoljan broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
sekvencijalno (jednoprocesorsko) računanje:
T1 = 12 ∗ 5 + 12 ∗ 1 = 72
maksimalno paralelno računanje (proizvoljan broj procesora):
T∞ = 3 ∗ 5 = 15 −→ S∞ =T1
T∞=
72
15= 4.8
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 32 / 81
. . . . . .
Proizvoljan broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
sekvencijalno (jednoprocesorsko) računanje:
T1 = 12 ∗ 5 + 12 ∗ 1 = 72
maksimalno paralelno računanje (proizvoljan broj procesora):
T∞ = 3 ∗ 5 = 15 −→ S∞ =T1
T∞=
72
15= 4.8
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 32 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Manji broj procesoras(0)
s(1)
s(2)
s(3)
s(4)
s(5)
s(6)
s(7)
S(0)
S(1)
S(2)
S(3)
S(4)
S(5)
S(6)
S(7)
A
C
D
E
F
G
H P
O
N
M
L
K
I Q
R
S
T
U
V
W
X
B J
-0 5 10 15 20 25
P1
P2
P3
A
B
C
D
E F
G
H
I
J
K
L
M
N
O
P
Q R
S
T
U
V
W
X
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81
. . . . . .
Iskoristivost procesoraza primjer s 3 procesora
I trajanje obrade Tp = T3 = 25
I ubrzanje Sp = T1
Tp= 72
25 = 2.88 < S∞ = 4.8
I iskoristivost procesora = omjer ubrzanja i broja procesora
Ep =Spp =
2.88
3= 0.96
za 24 procesora
Ep =S∞p =
4.8
24= 0.2
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 34 / 81
. . . . . .
Iskoristivost procesoraza primjer s 3 procesora
I trajanje obrade Tp = T3 = 25
I ubrzanje Sp = T1
Tp= 72
25 = 2.88 < S∞ = 4.8
I iskoristivost procesora = omjer ubrzanja i broja procesora
Ep =Spp =
2.88
3= 0.96
za 24 procesora
Ep =S∞p =
4.8
24= 0.2
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 34 / 81
. . . . . .
Aktivnost procesoraaktivnost procesora može se prikazati grafički
za primjer s proizvoljnim brojem procesora
4
8
3 5 7 10 11 15t
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 35 / 81
. . . . . .
Optimiranje broja procesorakoliko je procesora dovoljno za postizanje maksimalno mogućegubrzanja (S∞ – svojstvo algoritma) ?
za naš primjer FFT i 8 procesora: E8 =4.88 = 0.6 > E24
0 5 10 15
A I Q
B L
J R
X
T
C K S
D N V
E M U
F P
G O W
H
P1
P2
P3
P4
P6
P7
P8
P5
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 36 / 81
. . . . . .
Optimiranje broja procesoraza zadani algoritam (graf protoka podataka) treba odrediti takavbroj procesora da ubrzanje bude S∞, a pritom Ep → 1
bilo bi dobro postići p = ⌈S∞⌉ = ⌈4.8⌉ = 5
F J P X
M L W
G I K U
O S T
H Q R V
A
B
C
D
E
P1
P2
P3
P4
P5 N
0 5 10 15 17
S5 =7217 = 4.235 < S∞
E5 =4.2355 = 0.847
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 37 / 81
. . . . . .
Optimiranje broja procesoramože li bolje ?
raspoređivanje zadataka je NP-težak problem
za naš jednostavan primjer moguće je postići
A
H P X
F O W
V
B K U
C E G M I Q R S TJ
P1
P2
P3
P4
P5
0 5 10 15
D
N
L
S5 =7215 = 4.8 = S∞
E5 =4.85 = 0.96
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 38 / 81
. . . . . .
Amdahlov zakon
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 39 / 81
. . . . . .
Amdahlov zakonGene Amdahl, 1967
zakon govori o mogućnosti ubrzanja sustava koji se sastoji od višekomponenti od kojih se samo neke ubrzavaju
p dio posla koji se može ubrzati N puta
s dio posla koji se ne može ubrzati
T1 = p + s
T2 = p/N + s
speedup =T1
T2=
p + sp/N + s
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 40 / 81
. . . . . .
Amdahlov zakonu kontekstu paralelnih sustava N je broj procesora koji nam je naraspolaganju
zakon govori o ograničenju ubrzanja aplikacija koje nisu savršenoparalelne
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 41 / 81
. . . . . .
Amdahlov zakonako postavimo T1 = 1 = p + s, onda je s vremenski udio instrukcijaprograma koje se ne mogu paralelizirati a p je udio instrukcija kojese mogu paralelno izvoditi
speedup =1
s + p/Nmaksimalno moguće ubrzanje, uz N = ∞ je 1/sspeedup ≤ 1/s
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 42 / 81
. . . . . .
Amdahlov zakon
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 43 / 81
. . . . . .
Amdahlov zakonovo razmatranje nas može navesti na pomisao da se MPParhitekture ne isplate
vrlo malo problema se može tako dobro paralelizirati da ubrzanjebude veliko
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 44 / 81
. . . . . .
Gustafsonov zakonmeđutim, stvarne izvedbe pokazuju vrlo dobra ubrzanja (npr. 1020na MPP s 1024 procesora)
potrebno je problem sagledati s druge strane
John Gustafson, 1988 (Sandia National Laboratories)
Amdahlov zakon temelji se na pretpostavci da je udioparaleliziranog posla p neovisan od broja procesora Nu stvarnosti se ne uzima fiksna veličina problema, već se problemskalira s brojem procesora kako bi se resursi iskoristili
realističnija je pretpostavka da je vrijeme izvođenja konstantno, ane veličina problema
pokazuje se da serijska komponenta s obično ne raste skaliranjemproblema
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 45 / 81
. . . . . .
Gustafsonov zakonpretpostavke:
I veličina problema se skalira proporcionalno s brojem procesora
I serijski dio posla se ne povećava
ako se krene od skaliranog problema – koji se može izvoditi naparalelnom računalu, može se odrediti vrijeme potrebno zaizvođenje istog problema na serijskom računalu i tako procijenitiubrzanje
s′ i p′ : udio serijskog i paralelnog posla pri izvođenju naparalelnom računalu
T2 = s′ + p′
serijskom računalo bi za obavljanje istog posla bilo potrebnovrijeme
T1 = s′ + p′ × N
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 46 / 81
. . . . . .
Gustafsonov zakonstoga je skalirano ubrzanje
Scaled speedup =s′ + p′ × N
s′ + p′
uz s′ + p′ = 1
Scaled speedup = s′ + p′ ×N = s′ + (1− s′)×N = N+ (1−N)× s′
rezultat je linearna funkcija s nagibom (1− N)
za s′ = 0 ubrzanje je Nza s′ = 1 ubrzanje je 1
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 47 / 81
. . . . . .
Flynnova taksonomija arhitektura
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 48 / 81
. . . . . .
Flynnova taksonomija arhitekturaFlynn, 196x
temelji se na toku podataka i toku instrukcija
SISD (single instruction stream over a single data stream)I jednostruki tok instrukcija nad jednostrukim tokom podataka
I von Neumannovo računalo
I jednoprocesorski sustavi
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 49 / 81
. . . . . .
Flynnova taksonomija arhitekturaSIMD (single instruction stream over multiple data stream)
I jednostruki tok instrukcija nad višestrukim tokom podataka
I jednostavne i pravilne aplikacije s izraženom lokalnošću podataka
I vektorska računala – matrične operacijeI multimedijska proširenja skupa instrukcija modernih mikroprocesora(MMX, VIS,...)
I grafički sustavi
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 50 / 81
. . . . . .
Flynnova taksonomija arhitekturaMISD (multiple instruction stream over single data stream)
I višestruki tok instrukcija nad jednostrukim tokom podataka
I nije fizički izvediva / nema realizacije koja bi se mogla svrstati u ovukategoriju
I uvjetno se u ovu kategoriju svrstavaju protočna računala i sistoličkearhitekture
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 51 / 81
. . . . . .
Flynnova taksonomija arhitekturaMIMD (multiple instruction stream over multiple data stream)
I višestruki tok instrukcija nad višestrukim tokom podataka
I višeprocesorski sustavi
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 52 / 81
. . . . . .
Vektorska računala (SIMD)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 53 / 81
. . . . . .
Vektorska računala (SIMD)vektorski procesori podržavaju operacije visoke razine, koje djelujunad linearnim poljima brojeva – ”vektorima”
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 54 / 81
. . . . . .
Vektorska računala (SIMD)vektorski procesori su bili vrlo značajni u 70-tim i 80-tim godinamaprošlog stoljeća
I superračunala (Seymour Cray, CDC Star-100)
I potisnula su ih masivno paralelna računala
ova vrsta arhitekture koristi se i danasI grafički i multimedijski procesori
I procesori namijenjeni igraćim konzolama (Cell)
I multimedijske funkcijske jedinice modernih mikroprocesora, uzodgovarajući multimedijska proširenja skupa instrukcijaMMX, SSE, SSE2, AVX
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 55 / 81
. . . . . .
Vektorske instrukcijekoncept – operacije se obavljaju nad vektorima
petlja se zamjenjuje jednom vektorskom instrukcijom
for (i=0; i<n; i++) {a[i] = b[i] + c[i];
}
ADDV.D V10, V8, V6 // a = b + c;
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 56 / 81
. . . . . .
Prednosti vektorskih instrukcijapojedinačna vektorska instrukcija inicira puno posla (petlja)
I manji broj pribavljanja instrukcija
pojedini prolaz kroz petlju (iteracija) nema podatkovnumeđuzavisnost s ostalim iteracijama
I nema potrebe za provjeravanjem podatkovnog hazarda
I dugačka protočna struktura (u vektorskim računalima je protočnost iuvedena)
I visoka taktna frekvencija
I pojednostavljenje upravljanja dubokom protočnom strukturom
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 57 / 81
. . . . . .
Prednosti vektorskih instrukcijavektorske instrukcije pristupaju memoriji u poznatim sljedovima
I memorija može biti isprepletenaI ublažavaju se memorijska kašnjenja (latencija)
I nepotrebna podatkovna priručna memorija
manja uporaba grananja – smanjenje problema u protočnojstrukturi
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 58 / 81
. . . . . .
Osobine vektorskih arhitekturavektorske arhitekture tipa memorija-memorija
I sve vektorske instrukcije obavljaju se nad operandima (vektorima)smještenim u memoriji
I CDC Star100, Cyber203, Cyber205, 370 vector extensions
vektorske arhitekture s vektorskim registrimaI vektorska varijanta load-store arhitektureI sve vektorske instrukcije (izuzev load i store) obavljaju se nadoperandima smještenim u vektorskim registrima
I koncept uveden s Cray-1
I praktički sve vektorske arhitekture od kasnih 80-tih su ovog tipa
I Cray, Convex, Fujitsu, Hitachi, NEC
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 59 / 81
. . . . . .
Komponente vektorskog procesoravektorski registar – banka fiksne duljine, sadrži jedan vektor
I ima barem 2 pristupa za čitanje i 1 za pisanje
I tipično 8–32 vektorska registra, svaki sadrži 64–128 64-bitnaelementa
vektorske funkcijske jedinice (FU) – potpuno protočne, svakimtaktom pokreće se nova operacija
I tipično 4–8 FU: FP add, FP mult, FP reciprocal (1/X), integer add,logical, shift;
vektorska load-store jedinica (LSU) – potpuno protočna jedinica zaučitavanje ili pohranjivanje vektora
skalarni registri – za pohranu FP skalara ili adresa
prospojna mreža koja povezuje FU, LSU i registre
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 60 / 81
. . . . . .
Programski model
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 61 / 81
. . . . . .
Implementacijaskup vektorskih registara
I svaki registar je polje elemenata
I veličina registra određuje maksimalnu duljinu vektora
I koristi se registar duljine vektora – određuje duljinu vektora zapojedinu vektorsku operaciju
višestruke izvršne jedinice = lanes – staza, traka
pojedinačna izvršna jedinica = pipeline – protočna struktura
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 62 / 81
. . . . . .
Višestruke funkcijske jediniceprimjena višestrukih funkcijskih jedinica za istu vektorsku operaciju– povećanje performanse (multiple lanes)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 63 / 81
. . . . . .
Višestruke funkcijske jedinice4 staze, 2 vektorske funkcijske jedinice
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 64 / 81
. . . . . .
Vrijeme izvršavanja vektorskih instrukcijaneki pojmovi
Convoy – skup vektorskih instrukcija koje potencijalno moguzapočeti s izvršavanjem u istom taktu
I konvoj nema podatkovnih ni strukturnih hazardaI slično VLIW pristupuI pretpostavka: konvoj mora završiti prije nego što sljedeći započne sizvršavanjem
Chime – vremenska jedinica koja označava izvršavanje konvojaI izražavanje trajanja neovisno o duljini vektoraI vektorska sekvenca koja se sastoji od m konvoja izvršava se u mchimes
I vektorska sekvenca koja se sastoji od m konvoja s duljinom vektoran izvršava se u približno m × n ciklusa takta (ako je samo jednastaza, zanemareno je punjenje strukture)
Start-up time – vrijeme punjenja protočne strukture, ovisi o njenojdubini (pipeline latency time)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 65 / 81
. . . . . .
Primjer formiranja ”konvoja”
1: LV V1,Rx ;load vector X2: MULV V2,F0,V1 ;vector-scalar mult.
LV V3,Ry ;load vector Y3: ADDV V4,V2,V3 ;add4: SV Ry,V4 ;store the result
4 konvoja
vektorsko množenje i vektorsko učitavanje mogu se odvijatiistovremeno
uz 1 stazu i duljinu vektora VL=64 =⇒ 4 x 64 = 256 ciklusa takta(4 ciklusa po komponenti rezultata)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 66 / 81
. . . . . .
Isprepletenost memorijememorija je na vektorskim računalima tipično organizirana u višebanki
pristup memoriji za red veličine sporiji od procesorskog takta
umanjuje se latencija memorije sklopovskim preklapanjemvišestrukih zahtjeva za podacima
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 67 / 81
. . . . . .
Isprepletenost memorijeisprepletenost memorije - primjer s 8 memorijskih banki
I pretpostavimo da je memorijskoj banki potrebno 6 ciklusa daisporuči podatak
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 68 / 81
. . . . . .
Isprepletenost memorije
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 69 / 81
. . . . . .
Ulančavanje vektorskih instrukcijaMULV V1,V2,V3ADDV V4,V1,V5 ; moraju li u različite konvoje ?
ulančavanjeI vektorski registar V1 nije samo jedan entitet, već se sastoji od grupepojedinačnih registara
I napredovanje kroz protočnu strukturu je individualno za svakielement – uz pomak elemenata moguće je spojiti obje instrukcije ulanac
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 70 / 81
. . . . . .
Ulančavanje vektorskih instrukcijabez ulančavanja mora se čekati na zapisivanje zadnjeg elementarezultata prije pokretanja sljedeće (zavisne) instrukcije
s ulančavanjem – zavisna instrukcija može se pokrenuti čim sepojavi prvi rezultat
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 71 / 81
. . . . . .
Ulančavanje vektorskih instrukcija
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 72 / 81
. . . . . .
Ulančavanje vektorskih instrukcijanekoliko različitih vektorskih instrukcija može se istovremenoizvoditi (u različitim funkcijskim jedinicama)
I primjer – vektori s 32 elementa, 8 staza =⇒ vektorska operacijaizvodi se u 4 takta
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 73 / 81
. . . . . .
Sistoličke arhitekture
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 74 / 81
. . . . . .
Sistoličke arhitektureVLSI tehnologija omogućava jeftine čipove posebne namjene
prikladno je algoritme implementirati izravno na čipu,povezivanjem procesnih elemenata u pravilnu strukturu
zamjena jednog procesora poljem procesnih elemenata
usklađivanje (orkestracija) protoka podataka kako bi se postiglavisoka propusnost s malim brojem dohvata memorije
ritmičko obavljanje operacije i prosljeđivanje međurezultatasljedećem PE
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 75 / 81
. . . . . .
Sistoličke arhitekture
obrada u sistoličkom polju ima značajke protočne obrade, nopristup je ipak različit
I struktura ne mora biti linearna (2D polje procesnih elemenata –pravokutno, trokutasto, heksagonalno)
I svaki procesni element može imati (mali) skup instrukcija i lokalnupodatkovnu memoriju
I putevi podataka između procesnih elemenata mogu biti višesmjerni
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 76 / 81
. . . . . .
Sistoličke arhitekture
ne može se svrstati u SIMDI svaki PE može obavljati različitu funkciju
često se svrstava u MISDI obavlja se niz različitih operacija nad ”istim” tokom podataka
praktične izvedbe (npr. iWARP) koriste procesne elemente sodređenom razinom programabilnosti – gotovo opće namjene
omogućuje se izvedba različitih algoritama na istom sklopovlju
prospojni putevi su fiksni i prilagođeni problemu
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 77 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
y1 = w1x1 + w2x2 + w3x3
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
y2 = w1x2 + w2x3 + w3x4
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureSistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)
y3 = w1x3 + w2x4 + w3x5
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81
. . . . . .
Primjer sistoličke arhitektureprimjer 2D sistoličkog polja za računanje produkta matrica
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 79 / 81
. . . . . .
Problem sinkronizacijeproblem: ritmičko prosljeđivanje podataka upravljano signalomtakta
zbog sinkronizacije potrebna su dodatna kašnjenja – dodatnisklopovi, smanjenje propusnosti
sistolička polja upravljana podacimaI PE je aktivan kada su mu na raspolaganju svi potrebni podaci
I polja valne fronte – wavefront array
I identični procesni elementi, pravilan uzorak lokalnih veza
I visok stupanj paralelizma obrade svojstven problemu (algoritmu)
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 80 / 81
. . . . . .
Primjene sistoličke arhitekturematrične operacije
I množenje vektora s matricamaI množenje matricaI triangulacija matrica – rješavanje linearnih sustavaI LU i QR dekompozicija
digitalna obrada signalaI FIR, IIR, konvolucijaI interpolacijaI DFTI podudaranje uzoraka
http://www.ttu.ee/users/nalle/SoC/socaX1 02.pdf
N. Gupta, A VLSI Architecture for Image Registration in Real Time,IEEE trans. VLSI Systems, 2007
VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 81 / 81