Višeprocesorski I Paralelni Sistemi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 106

Višeprocesorski i paralelni sustavi

Izv. prof. dr. sc. Zoran Kalafatić


Doc. dr. sc. Tomislav Hrkać

Zoran.Kalafatic@fer.hr, Tomislav.Hrkac@fer.hr

ZEMRIS, 2013/14

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 1 / 81


Višeprocesorski i paralelni sustavi
Sadrž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čunarskih
sustava, Algebra, Zagreb, 2011.
4. Michel Dubois, Murali Annavaram, Per Stenström, Parallel

Computer Organization and Design, Morgan Kaufmann, 2012.


5. Kayvon Fatahalian, CMU, Parallel Computer Architecture and
Programming (link)

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 3 / 81


Paralelni sustav
Uobičajena definicija paralelnog računala:
skup procesnih elemenata koji surađuju kako bi brzo riješili
računski vrlo zahtjevne probleme

Neka tipična pitanja arhitekture paralelnih sustava:


dodjela resursa
I broj procesnih elemenata (PE)
I procesna moć pojedinog PE
I veličina memorije
pristup podacima, komunikacija, sinkronizacija
I način suradnje PE i njihova komunikacija
I prijenos podataka među PE
I apstrakcija i primitivi kooperacije
performansa, skalabilnost
I utjecaj na performansu
I ponašanje pri skaliranju sustava
. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 4 / 81


Arhitektura paralelnih sustava
Uloga ”arhitekta” računalnih sustava (computer architect)
oblikovati i podesiti različite razine računalnog sustava u cilju
poboljšanja performanse i programabilnosti u okviru ograničenja
raspoložive tehnologije i cijene

Uvođenje paralelizma:
nudi alternativu povećanju performanse ubrzanjem radnog takta
logično je performansu sustava povećati raspodjelom posla na
viš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


Ubrzanje
Glavna motivacija za korištenje paralelnih sustava: ubrzanje aplikacija
(speedup)
Performansa(p procesora)
Ubrzanje(p procesora) =
Performansa(1 procesor)

Za konkretan računski problem


Performansa = 1/Vrijeme
Vrijeme(1 procesor)
Ubrzanje(p procesora) =
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 obrada
Do prije 10-tak godina
za posebno zahtjevne aplikacije za koje performansa
mikroprocesora 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 bez
napora programera

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 8 / 81


Performansa jednoprocesorskih sustava
Do 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 (uz
odgovarajuće sklopovlje)
I ta se nezavisnost instrukcija može ustanoviti tijekom prevođenja
programa (VLIW)
I ispitivanje i iskorištavanje nezavisnosti instrukcija može se obaviti i
tijekom 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 i
izvrš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čunarstva
primjena računarstva u znanostima (scientific computing)
I simulacija fizikalnih, kemijskih i bioloških fenomena koje je teško ili
skupo promatrati empirijski
I izuzetno zahtjevni proračuni – najveći zahtjevi za performansom
I modeliranje klimatoloških promjena, evolucije galaksija, strukture
materijala, analiza strukture DNA, . . .
inženjerske primjene (engineering computing)
I modeliranje naftnih bušotina
I simulacija sudara, analiza efikasnosti motora, analiza
elektromagnetskih utjecaja
I analiza lijekova, molekularna analiza
I 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 performanse
ograničena mogućnost iskorištenja paralelizma na razini instrukcije
resursi rastu, ali teško je naći dovoljan broj nezavisnih instrukcija
koje bi ga iskoristile
istovremeno izvođenje više od 5 instrukcija (u jednom
instrukcijskom slijedu!) je vrlo rijetko moguće, pa se daljnja
ubrzanja ne mogu postići na ILP razini

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 13 / 81


Kraj povećanja jednoprocesorske performanse
nemogućnost daljnjeg povećanja frekvencije (”power wall”)
dinamička snaga po tranzistoru ∝ f × U2
snaga → toplina
snaga je postala najznačajniji faktor u oblikovanju modernih
računala

Intel Core i7 (desktop CPU): 95W


NVIDIA GTX 780 GPU: 250W
Procesor u mobitelu: 1-2W
Superrač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ćnosti
viš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čunala
Intel 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 GPGPU
NVIDIA Kepler GTX 780 GPU (2013)

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 18 / 81


Mobilni uređaji
Energetska učinkovitost određuje arhitekturu mobilnih uređaja

Apple A7 (iPhone 5s, iPad) NVIDIA Tegra 4


Dual-core CPU + GPU + image Quad core CPU + GPU +
processor image processor

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 19 / 81


Superračunala
Prvi na listi Top500.org (11/2013): Tianhe-2 (MilkyWay-2)
National Super Computer Center in Guangzhou, China

Cores 3,120,000
Linpack 33,862.7 TFlop/s
Power 17,808.00 kW
Memory 1,024,000 GB
Interconnect TH Express-2
OS Kylin Linux

16.000 čvorova, svaki se sastoji od 2 procesora Intel Xeon (Ivy


Bridge) i 3 koprocesora Xeon Phi
ukupno 3.120.000 jezgri
svaki čvor ima 88 GiB memorije (64 GiB za Xeone i 8 GiB za svaki
Xeon Phi) → ukupno 1.34 PiB
. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 20 / 81


Zelena superračunala
Prvi na listi Green500.org (11/2013): TSUBAME-KFC
GSIC 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čka
procesora 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 instrukcija
razlaganje izvođenja instrukcije na faze koje se mogu obavljati
istovremeno (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 instrukcija
procesor sadrži veći broj funkcijskih jedinica na čipu (integer, FP,
upravljanje memorijom, upravljanje grananjima)
procesor pribavlja veći broj različitih instrukcija koje se
istovremeno izvršavaju na različitim funkcijskim jedinicama kad
god je to moguće (dinamičko raspoređivanje!)
opskrba procesora instrukcijama i podacima mora biti dovoljno
brza 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 slijeda
instrukcija se pribavlja i pohranjuje u red (instruction buffer)
instrukcija čeka trenutak kada su raspoloživi njeni operandi, i tada
se 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đenja
vrlo duga instrukcijska riječ (VLIW, very long instruction word)
superskalarno izvođenje, kao i izvođenje van programskog slijeda
zahtijeva vrlo složenu sklopovsku podršku za dinamičko
određivanje koje se instrukcije mogu istovremeno izvoditi
slijed izvođenja instrukcija, te moguće istovremeno izvođenje
određ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 mogu
simultano 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čunanja
Diskretna Fourierova transformacija (DFT)

1 ∑
N−1
X(k) = x(n)e−j2Πnk/N
N
n=0

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 8 , 5 vrem. jedinica
2Πk

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 30 / 81


Graf protoka podataka
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 31 / 81


Proizvoljan broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

sekvencijalno (jednoprocesorsko) računanje:


T1 = 12 ∗ 5 + 12 ∗ 1 = 72

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 32 / 81


Proizvoljan broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

sekvencijalno (jednoprocesorsko) računanje:


T1 = 12 ∗ 5 + 12 ∗ 1 = 72
maksimalno paralelno računanje (proizvoljan broj procesora):
T1 72
T∞ = 3 ∗ 5 = 15 −→ S∞ = = = 4.8
T∞ 15
. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 32 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1

P2

P3
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A

P2

P3
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A

P2 B

P3
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A

P2 B

P3 C
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D

P2 B

P3 C
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D

P2 B

P3 C E
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D

P2 B

P3 C E F
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O

P2 B G I K N P

P3 C E F J L
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O

P2 B G I K N P

P3 C E F J L Q
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O

P2 B G I K N P

P3 C E F J L Q R
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O S

P2 B G I K N P

P3 C E F J L Q R
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O S

P2 B G I K N P T

P3 C E F J L Q R
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O S

P2 B G I K N P T

P3 C E F J L Q R U
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O S V

P2 B G I K N P T

P3 C E F J L Q R U
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Manji broj procesora
A I Q
s(0) S(0)

B J R
s(1) S(1)

C K S
s(2) S(2)

D L T
s(3) S(3)

E M U
s(4) S(4)

F N V
s(5) S(5)

G O W
s(6) S(6)

H P X
s(7) S(7)

P1 A D H M O S V

P2 B G I K N P T W

P3 C E F J L Q R U X
-
0 5 10 15 20 25

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 33 / 81


Iskoristivost procesora
za primjer s 3 procesora
I trajanje obrade Tp = T3 = 25
T1 72
I ubrzanje Sp = Tp = 25 = 2.88 < S∞ = 4.8
I iskoristivost procesora = omjer ubrzanja i broja procesora

Sp 2.88
Ep = = = 0.96
p 3

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 34 / 81


Iskoristivost procesora
za primjer s 3 procesora
I trajanje obrade Tp = T3 = 25
T1 72
I ubrzanje Sp = Tp = 25 = 2.88 < S∞ = 4.8
I iskoristivost procesora = omjer ubrzanja i broja procesora

Sp 2.88
Ep = = = 0.96
p 3

za 24 procesora
S∞ 4.8
Ep = = = 0.2
p 24

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 34 / 81


Aktivnost procesora
aktivnost procesora može se prikazati grafički
za primjer s proizvoljnim brojem procesora

3 5 7 10 11 15 t

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 35 / 81


Optimiranje broja procesora
koliko je procesora dovoljno za postizanje maksimalno mogućeg
ubrzanja (S∞ – svojstvo algoritma) ?
4.8
za naš primjer FFT i 8 procesora: E8 = 8 = 0.6 > E24
P1 A I Q J R T

P2 B L X

P3 C K S

P4 D N V

P5 E M U

P6 F P

P7 G O W

P8 H

0 5 10 15

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 36 / 81


Optimiranje broja procesora
za zadani algoritam (graf protoka podataka) treba odrediti takav
broj procesora da ubrzanje bude S∞ , a pritom Ep → 1
bilo bi dobro postići p = ⌈S∞ ⌉ = ⌈4.8⌉ = 5
P1 A F J P X

P2 B M L W

P3 C G I K U

P4 D O S T

P5 E H N Q R V

0 5 10 15 17

72
S5 = 17 = 4.235 < S∞
4.235
E5 = 5 = 0.847

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 37 / 81


Optimiranje broja procesora
može li bolje ?
raspoređivanje zadataka je NP-težak problem
za naš jednostavan primjer moguće je postići
P1 H P X

P2 F O W

P3 D L V

P4 B K U

P5 A C E G M N I J Q R S T

0 5 10 15

72
S5 = 15 = 4.8 = S∞
4.8
E5 = 5 = 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 zakon
Gene Amdahl, 1967
zakon govori o mogućnosti ubrzanja sustava koji se sastoji od više
komponenti 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

T1 p+s
speedup = =
T2 p/N + s

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 40 / 81


Amdahlov zakon
u kontekstu paralelnih sustava N je broj procesora koji nam je na
raspolaganju
zakon govori o ograničenju ubrzanja aplikacija koje nisu savršeno
paralelne

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 41 / 81


Amdahlov zakon
ako postavimo T1 = 1 = p + s, onda je s vremenski udio instrukcija
programa koje se ne mogu paralelizirati a p je udio instrukcija koje
se mogu paralelno izvoditi
1
speedup =
s + p/N
maksimalno moguće ubrzanje, uz N = ∞ je 1/s
speedup ≤ 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 zakon
ovo razmatranje nas može navesti na pomisao da se MPP
arhitekture ne isplate
vrlo malo problema se može tako dobro paralelizirati da ubrzanje
bude veliko

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 44 / 81


Gustafsonov zakon
međutim, stvarne izvedbe pokazuju vrlo dobra ubrzanja (npr. 1020
na 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 udio
paraleliziranog posla p neovisan od broja procesora N
u stvarnosti se ne uzima fiksna veličina problema, već se problem
skalira s brojem procesora kako bi se resursi iskoristili
realističnija je pretpostavka da je vrijeme izvođenja konstantno, a
ne veličina problema
pokazuje se da serijska komponenta s obično ne raste skaliranjem
problema

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 45 / 81


Gustafsonov zakon
pretpostavke:
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 na


paralelnom računalu, može se odrediti vrijeme potrebno za
izvođenje istog problema na serijskom računalu i tako procijeniti
ubrzanje
s′ i p′ : udio serijskog i paralelnog posla pri izvođenju na
paralelnom računalu
T2 = s′ + p′
serijskom računalo bi za obavljanje istog posla bilo potrebno
vrijeme
T1 = s′ + p′ × N

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 46 / 81


Gustafsonov zakon
stoga je skalirano ubrzanje

s′ + p′ × N
Scaled speedup =
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 N
za 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 arhitektura
Flynn, 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 arhitektura
SIMD (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 operacije
I 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 arhitektura
MISD (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 ovu
kategoriju
I uvjetno se u ovu kategoriju svrstavaju protočna računala i sistoličke
arhitekture

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 51 / 81


Flynnova taksonomija arhitektura
MIMD (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 djeluju
nad 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 godinama
proš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 danas
I grafički i multimedijski procesori
I procesori namijenjeni igraćim konzolama (Cell)
I multimedijske funkcijske jedinice modernih mikroprocesora, uz
odgovarajući multimedijska proširenja skupa instrukcija
MMX, SSE, SSE2, AVX

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 55 / 81


Vektorske instrukcije
koncept – 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 instrukcija
pojedinačna vektorska instrukcija inicira puno posla (petlja)
I manji broj pribavljanja instrukcija
pojedini prolaz kroz petlju (iteracija) nema podatkovnu
međuzavisnost s ostalim iteracijama
I nema potrebe za provjeravanjem podatkovnog hazarda
I dugačka protočna struktura (u vektorskim računalima je protočnost i
uvedena)
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 instrukcija
vektorske instrukcije pristupaju memoriji u poznatim sljedovima
I memorija može biti isprepletena
I ublažavaju se memorijska kašnjenja (latencija)
I nepotrebna podatkovna priručna memorija

manja uporaba grananja – smanjenje problema u protočnoj


strukturi

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 58 / 81


Osobine vektorskih arhitektura
vektorske 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 registrima
I vektorska varijanta load-store arhitekture
I sve vektorske instrukcije (izuzev load i store) obavljaju se nad
operandima 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 procesora
vektorski 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-bitna
elementa
vektorske funkcijske jedinice (FU) – potpuno protočne, svakim
taktom 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 za


uč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


Implementacija
skup 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 za
pojedinu 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 jedinice
primjena 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 jedinice
4 staze, 2 vektorske funkcijske jedinice

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 64 / 81


Vrijeme izvršavanja vektorskih instrukcija
neki pojmovi
Convoy – skup vektorskih instrukcija koje potencijalno mogu
započeti s izvršavanjem u istom taktu
I konvoj nema podatkovnih ni strukturnih hazarda
I slično VLIW pristupu
I pretpostavka: konvoj mora završiti prije nego što sljedeći započne s
izvršavanjem
Chime – vremenska jedinica koja označava izvršavanje konvoja
I izražavanje trajanja neovisno o duljini vektora
I vektorska sekvenca koja se sastoji od m konvoja izvršava se u m
chimes
I vektorska sekvenca koja se sastoji od m konvoja s duljinom vektora
n izvršava se u približno m × n ciklusa takta (ako je samo jedna
staza, zanemareno je punjenje strukture)

Start-up time – vrijeme punjenja protočne strukture, ovisi o njenoj


dubini (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 X


2: MULV V2,F0,V1 ;vector-scalar mult.
LV V3,Ry ;load vector Y
3: ADDV V4,V2,V3 ;add
4: SV Ry,V4 ;store the result

4 konvoja
vektorsko množenje i vektorsko učitavanje mogu se odvijati
istovremeno
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 memorije
memorija je na vektorskim računalima tipično organizirana u više
banki
pristup memoriji za red veličine sporiji od procesorskog takta
umanjuje se latencija memorije sklopovskim preklapanjem
višestrukih zahtjeva za podacima

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 67 / 81


Isprepletenost memorije
isprepletenost memorije - primjer s 8 memorijskih banki
I pretpostavimo da je memorijskoj banki potrebno 6 ciklusa da
isporuč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 instrukcija
MULV V1,V2,V3
ADDV V4,V1,V5 ; moraju li u različite konvoje ?
ulančavanje
I vektorski registar V1 nije samo jedan entitet, već se sastoji od grupe
pojedinačnih registara
I napredovanje kroz protočnu strukturu je individualno za svaki
element – uz pomak elemenata moguće je spojiti obje instrukcije u
lanac

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 70 / 81


Ulančavanje vektorskih instrukcija
bez ulančavanja mora se čekati na zapisivanje zadnjeg elementa
rezultata prije pokretanja sljedeće (zavisne) instrukcije

s ulančavanjem – zavisna instrukcija može se pokrenuti čim se


pojavi 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 instrukcija
nekoliko različitih vektorskih instrukcija može se istovremeno
izvoditi (u različitim funkcijskim jedinicama)
I primjer – vektori s 32 elementa, 8 staza =⇒ vektorska operacija
izvodi 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 arhitekture
VLSI 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 postigla
visoka propusnost s malim brojem dohvata memorije
ritmičko obavljanje operacije i prosljeđivanje međurezultata
sljedeć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, no


pristup 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 lokalnu
podatkovnu 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 SIMD


I svaki PE može obavljati različitu funkciju
često se svrstava u MISD
I obavlja se niz različitih operacija nad ”istim” tokom podataka

praktične izvedbe (npr. iWARP) koriste procesne elemente s


određ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 arhitekture
Sistolič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 arhitekture
Sistolič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 arhitekture
Sistolič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 arhitekture
Sistolič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 arhitekture
Sistolič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 arhitekture
Sistolič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 arhitekture
Sistolič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 arhitekture
Sistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)

y1 = w1 x1 + w2 x2 + w3 x3

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81


Primjer sistoličke arhitekture
Sistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)

y2 = w1 x2 + w2 x3 + w3 x4

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81


Primjer sistoličke arhitekture
Sistoličko polje za računanje 1-D konvolucije
y(i) = w1 × x(i) + w2 × x(i + 1) + w3 × x(i + 2)

y3 = w1 x3 + w2 x4 + w3 x5

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 78 / 81


Primjer sistoličke arhitekture
primjer 2D sistoličkog polja za računanje produkta matrica

. . . . . .

VIPS, 2013/14 Višeprocesorski i paralelni sustavi 9.6.2014. 79 / 81


Problem sinkronizacije
problem: ritmičko prosljeđivanje podataka upravljano signalom
takta
zbog sinkronizacije potrebna su dodatna kašnjenja – dodatni
sklopovi, smanjenje propusnosti
sistolička polja upravljana podacima
I 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 arhitekture
matrične operacije
I množenje vektora s matricama
I množenje matrica
I triangulacija matrica – rješavanje linearnih sustava
I LU i QR dekompozicija
digitalna obrada signala
I FIR, IIR, konvolucija
I interpolacija
I DFT
I 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

You might also like