You are on page 1of 24

Paralelni sistemi

Protonost (pipelining)

Protonost (pipelining)
Protonost je tehnika projektovanja hardvera

kojom se uvodi konkurentnost u raunarski


sistem tako to se neke osnovne funkcije (f) ije
se izvrenje esto zahteva dele na niz
podfunkcija f1, f2, ..., fk, tako da budu
zadovoljeni sledei kriterijumi:
Izraunavanje osnovne funkcije f je ekvivalentno

sekvencijalnom izraunavanju podfunkcija f1, f2, ..., fk.


izlazi prethodne podfunkcije predstavaljaju ula ze za
sledeu podfunkciju u nizu podfunkcija koje se izvravaju
Osim razmene podataka izmedju podfunkcija ne postoji
nikakva druga zavisnost
Moe se projektovati hardver za izraunavanje svake
podfunkcije
Vremena potrebna ovim hardverskim jedinicama da
obave individalana izraunavanja su priblino jednaka

Protonost (nast.)
Hardver za izraunavanje bilo koje podfunkcije

zove se stepen protonog sistema (pipeline


stage)
U zavisnosti od naina upravljanja tokom
podataka kroz protoni sistem mogu se
razlikovati
asinhroni protoni sistemi
sinhroni protoni sistemi

Asinhroni model razmenom podataka

izmedju dva susedna stepena upravlja se


data
data
data
data
data
...
nekom handshake procedurom.
Hardverski
ready
ready
ready ... ready
ready
stepeni
sadre
memorijske
elemente
ack
ack
ack
ack
ack
...

Protonost (nast.)
Sinhroni model razmenom podataka upravlja

se pomou globalnog clk. Hardverski stepeni


ne sadre memorijske elemente. Zato se
izmedju stepena ubacuju leevi.
le

le

le

le

le

clk

svi stepeni su aktivni u svakom klok ciklusu.


Stepen i unosi kanjenje Ti. Klok perioda
protonog sistema iznosi
T=max{T1, T2,, Tk}+TL, gde je TL
T=max
kanjenje koje unosi le

Primer: projektovanje protonog FP


sabiaraa
p
q

A=a*2 , B=b*2

korak1: Poredjenje eksponenata p i q da bi se

pronaao vei, r=max(p,q) i razlika t=|p-q|.


korak2: Pomeriti za t mesta u desno mantisu
manjeg broja da bi se izjednaili eksponenti pre
sabiranja
korak3: Sabiranje mantisa i dobijanje
medjurezultata
korak4: Odredjivanje broja vodeih nula u sumi,
recimo u.
korak5: Pomeranje dobijene sume za u mesta u
levo da bise dobila normalizovana mantisa i
auriranje veeg eksponenta: r+u

Protoni sabira

Protoni sabira
Neaka su kanjenja koja unose pojedini stepeni
T1=60 ns
T2=50 ns
T3=80 ns
T4=50 ns
T5=80 ns
TL=10 ns
Klok perioda protonog sistema je T=max {60, 50,

80, 50, 50}+10=90ns


Vreme potrbno neprotonom sabirau da sabere
dva FP broja iznosi
Tnp=60+50+80+50+80=320ns
Vreme potrebno protonom sabirau da sabere
dva FP broja iznosi Tpr=5*90=450ns

Gde je dobit od uvodjenja


protonosti?
Ako je potrebno sabrati n parova brojeva
neprotonom sabirau e biti potrebno
Tnp=n*320 ns

a protonom
Tpr=450+(n-1)*90 ns
Za n=10
Tnp=10*320=3200 ns
Tpr=450+9*90=1360 ns

to je vee n performanse protonog sistema

su bolje. Za dovoljno veliko n ubrzanje


protonog sistema jednako je broju stepena, k.

Gantov dijagram
Prikazuje zauzetost pojedinih stepena u

vremenu

S5

P1 P2 P3 P4 P5 P6 P7
P1 P2 P3 P4 P5 P6 P7

S4
S3

P1 P2 P3 P4 P5 P6 P7
P1 P2 P3 P4 P5 P6 P7

S2

S1 P1 P2 P3 P4 P5 P6 P7
0

10

t [*90ns]

Klasifikacija protonih sistema


U odnosu na nain povezivanja hardverskih

stepena:

Linearni (kaskadna veza izmedju stepena; sabira iz

prethodnog primera)
Nelinearni pored kaskadnih veza postoje veze
ulaz
izvedene u napred i povratne
(u nazad)
S1

S2

izlaz A

S3

Klasifikacija protonih sistema


U odnosu na mogunosti obrade
Jednofunkcijski protoni sistemi sa fiksno
dodeljenom funkcijom (sabira iz prethodnog
primera)
Viefunkcijski mogu obavljati vie funkcija u isto ili
razliitim vremenskim trenucima. Mogu biti
Statiki
Dinamiki

Protonost na mikro nivou:


kod savremenih raunara koristi na nivou:
izvrenja instrukcija
izvrenja ALU operacija
kod pristupa memoriji

Protono na nivou zadatka (na makro nivou)

Primer sortiranje niza


Zadat je niz od n brojeva koji treba sortirati u

datom redosledu (npr. rastuem)


Protona realizacija:

Protoni sistem od n procesnih jedinica povezanih

linearno
P0

P1

P2

Pn-1

Procesor P0 prihvata niz brojeva (po jedan u datom klok ciklusu


Pamti najvei do tog trenutka primljeni broj
Prosledjuje desnom susedu manji broj
Svaki procesni element Pi u nizu obavlja istu operaciju (pamti
njvei primljeni broj a prosledjuje manji ka Pi+1
Na kraju rada P0 e imati najvei broj, P1 sledei najvei,... Pn1 e imati najmanji broj
Algoritam je paralelna verzija insertion sort algoritma

Primer n=5
P0
1
2
3
Vreme
(ciklusi)

4,3,1,2

4,3,1

4
5

5
5
5

10

P3

P4

5 1

P2

4,3,1,2,5

4,3

P1

3
4

2
2
3
4

1
2
3

1
2

1
2

1
1

Primer (nast.)

osnovni program za procesor Pi


primi(broj, Pi-1)
If (broj > x) {posalji(x,Pi+1);
x=broj;}
else posalji(broj, Pi+1);

Ako ima n brojeva i n procesora, i-ti procesor

(i=0,1,...,n-1) treba da primi n-i brojeva, a da prosledi


n-i-1, jer se jedan od brojeva zadrava.
Kompletan program za Pi
Broj_desnih_procesora=n-i-1;
Primi(x, Pi-1);
For (j=0: j < Broj_desnih_procesora; j++) {
primi(broj, Pi-1)
If (broj > x) {posalji(x,Pi+1);
x=broj;}
else posalji(broj, Pi+1);
}

Analiza performansi
Sekvencijalni algoritam
Usvojimo da poredjenje i dodeljivanje vrednosti traju 1

vremensku jedinicu;
Sekvencijalno vreme izvrenja

T1=(n-1)+(n-2)+...+2+1=n(n-2)/2O(n2/2)

Paralelni algoritam
Paralelna implementacija ima n+n-1=2n-1 ciklusa, ako ima n
procesora i n brojeva koje treba sortirati
Svaki procesor u u jednom ciklusu obavlja poredjenje i prijem i predaju
podataka (izuzev poslednjeg)
Tciklusa = 1 + tkomunikacije

Potrebno je jo n cikusa da se protoni sistem isprazni


Ukupno vreme rada protonog sistema iznosi
Tp=(3n-1) Tciklusa

Ubrzanje

n(n 1)
T
n(n 1)
n
2
S 1

O
Tp
3n 1
2(3n 2)
6

Primer: Mnoenje
Matrica C=A*B, A3X3, B3x3
bin
aout : ain

ain

aout

bout : bin
c : c ain * bin

bout
Funkcionalno svostvo
procesnog elementa

0 0 a13 a12 a11

0 a23 a22 a21 0

a33 a32 a31 0 0

Inicijalni raspored elemenata (T=0)

0
0

b33

b32

b23

b31

b22

b13

b21

b12

b11

0
0

Stanje nakon prvog koraka

0 0 a13 a12

0
0
b31

0
b32

b33

b22

b21

b12

b13

a11 *b11

a33 a32 a31 0

a11

b11

0 a23 a22 a21

b23

0
0

Stanje nakon drugog koraka

0
0
b31
a11 * b11

0 0 a13

a12 * b21

a12

b 21

0 a23 a22

a21 *b11

b11
a33 a32 a31

0
b32

b33

b22

b13

a11 *b12

b12
a21

b23

a11

Stanje nakon treeg koraka

0
0
a11 * b11

00

a12 * b21

b32

a13

a13 * b31

b 31
a21 * b11

0 a23

a22 * b21

a31 *b11

a11 * b12

a12 * b22

b23

a12

b 22
a22

b 21
a33 a32

b33

a21 *b12

b12
a31

a11 *b13

b13
a21

Stanje nakon etvrtog koraka

a11 * b11

a12 * b21

a23 * b31

a23

b 31
a31 * b11

a33

a32 * b21

a12 * b22

a13

a21 * b12

a22 * b22

b 23
a22

a31 *b12

a21 *b13

b13

b 22
a32

a11 * b13

a12 b23

b 32

0
a22 * b21

a11 * b12
a13 b32

a13 * b31

a21 * b11

b33

a31

Stanje nakon petog koraka

a11 * b11
a12 * b21

0
0

a32 * b21
a33 * b31

a21 * b12
a22 * b22

a13 * b33

b33

a23

b 32
a33

a31 * b12

a32 * b22

a11 * b13
a12 b23

a23 * b32

0
a31 * b11

a21 * b11
a23 * b31

a12 * b22
a13 b32

a13 * b31

a22 * b21

a11 * b12

a21 * b13

a22 * b23

b 23
a32

a 31 *b13

Stanje nakon estog koraka

a11 * b11
a12 * b21
a13 * b31

a21 * b11
a22 * b21
a23 * b31

a11 * b12
a12 * b22

a12 b23

a13 b32

a21 * b12
a22 * b22

a13 * b33

a32 * b21
a33 * b31

a31 * b12
a32 * b22
a33 * b32

a21 * b13
a22 * b23
a23 * b32

a23 * b32

b33

0
a31 * b11

a11 * b13

a33

a 31 *b13

a32 * b23

Stanje nakon sedmog koraka (kraj izraunavanja)

a11 * b11
a12 * b21
a13 * b31

a21 * b11
a22 * b21
a23 * b31

a31 * b11
a32 * b21
a33 * b31

a11 * b12
a12 * b22
a13 b32

a11 * b13
a12 b23
a13 * b33

a21 * b12

a21 * b13

a22 * b22

a22 * b23

a23 * b32

a23 * b32

a31 * b12
a32 * b22
a33 * b32

a 31 *b13
a32 * b23
a33 * b33

Performanse:
Proizvod se dobija nakon 3n-2 koraka
Na jednoprocesorskom sistemu proizvod se dobija nakon n3 koraka
Ubrzanje:

T (1)
n3
S

O(n 2 )
Tparallel 3n 2

C11

C12

C13

C21

C22

C23

C31

C32

C33

You might also like