Professional Documents
Culture Documents
01 - Performanse
01 - Performanse
01 - Performanse
Pojam performansa znači izvodjenje ili sposobnost za rad. Performanse računara se izražavaju
u vremenu potrebnom da se obavi neki posao. Računar koji isti posao radi za kraće vreme ima
bolje performanse.
Vreme odziva sistema je ukupno vreme proteklo od početka nekog posla do njegovog
konačnog završetka. U to vreme je uključeno:
• vreme koje procesor potroši za izvršenje tog posla
• vreme pristupa memoriji
• vreme posvećeno I/O (Input/Output) aktivnostima.
Prema tome, vreme odziva sistema možemo podeliti na CPU vreme i na ne-CPU vreme. CPU
vreme možemo podeliti na korisničko CPU vreme i sistemsko CPU vreme.
CPU performanse se odnose na korisničko CPU vreme zato što na sva ostala vremena utiču
faktori koji nisu direktno vezani za program koji se izvršava.
Većina računara se pobudjuje posebnim taktnim signalom u diskretnim vremenskim
intervalima koji se nazivaju taktni periodi ili clock ciklusi ( τ ). Taktni periodi se izražavaju
njihovim trajanjem (npr. τ = 10ns ) ili frekvencijom ( f c = 100MHz ). Frekvencija je recipročna
vrednost trajanja clock ciklusa, f c =1/ τ . Korisničko CPU vreme se, prema tome, može izraziti
na jedan od dva načina:
N
TCPU = N ciklusa ⋅τ ili TCPU = ciklusa
fc
pri čemu sa N ciklusa označavamo broj (clock) ciklusa potrebnih za izvršenje programa. Ako
znamo ukupan broj clock ciklusa i broj instrukcija, možemo izračunati srednji (prosečni) broj
clock ciklusa po instrukciji. Označavaćemo ga sa CPI (Clock cycles Per Instruction):
N
CPI = ciklusa ili N ciklusa = CPI × N instrukcija
Ninstrukcija
Zamenom dobijamo:
TCPU = N ciklusa ⋅τ = N instrukcija ⋅ CPI ⋅τ
Ovaj izraz predstavlja veoma grubu procenu vremena izvršavanja programa zato što se vremena
izvršavanja različitih instrukcija mogu veoma razlikovati. Zato se instrukcije dele u više grupa u
zavisnosti od vremena potrebnog za njihovo izvršenje, pa tako dobijamo:
n
N ciklusa = ∑ CPI i ⋅ N i
i =1
gde je:
n – broj različitih instrukcija u programu,
Ni – broj instrukcija tipa i koje se javljaju u programu,
CPIi – broj ciklusa potrebnih za izvršenje instrukcije tipa i.
N ∑ CPI i ⋅ Ni n
Ni
CPI = ciklusa = i =1
= ∑ CPI i ⋅
N instrukcija N instrukcija i =1 N instrukcija
Ni
Izraz se naziva frekvencija (verovatnoća) pojavljivanja instrukcija tipa i u programu.
Ninstrukcija
Zadatak 1. Pretpostavimo da imamo dva tipa CPU-a, А i B, kod koji se instrukcija uslovnog
skoka izvršava na različite načine.
CPU A: Naredba uslovnog skoka ostvaruje se pomoću dve instrukcije:
• uporedjivanja i
• uslovnog skoka
CPU B: Porednje je uključeno u uslovni skok.
Za oba CPU-a se naredba uslovnog skoka obavlja u dva ciklusa., dok se ostale instrukcije
obavljaju za jedan ciklus. Neka 20% svih instrukcija predstavlja instrukcije uslovnog skoka (za
CPU A to znači da je 20% drugih instrukcija posvećeno uporedjivanju). Takodje pretpostavimo
da je CPU A za 25% brži od CPU B, tj da je τ B = 1.25 ⋅τ A . Koji CPU brže izvršava program?
Rešenje:
CPU A ispunjeno:
2
N iA
CPI A = ∑ CPI i ⋅ = 2 ⋅ 0.20 + 1⋅ 0.80 = 1.2
i =1 NA
T A
CPU = N A ⋅1.2 ⋅τ A
A
Prema tome važi da je TCPU < TCPU
B
, tj da se program brže izvršava na CPU A.
Rešenje:
A
TCPU = N A ⋅1.2 ⋅τ A
Marko D. Petković: Vežbe iz paralelne obrade 3
Pošto se menja taktni interval za CPU B, promeniće se i vreme izvršavanja programa. Imamo da
je:
B
TCPU = N B ⋅1.25 ⋅τ B = 0.8 ⋅ N A ⋅1.25 ⋅1.25 ⋅τ A = N A ⋅1.10 ⋅τ A
= 1.10 ⋅ N A ⋅τ A = 0.88 ⋅ TCPU
A
Zadatak 3. Neka je data mašina kod koje samo instrukcije Load i Store rade sa memorijom dok
ostale rade sa registrima. Za ovu mašinu data je sledeća tabela frekvencija instrukcija (instruction
mix) i broja clock ciklusa po instrukciji:
Pretpostavimo da 25% ALU operacija koristi direktno jedan operand iz memorije, dok ostale
operacije koriste operande iz registara. Sada dodajmo jednu novu ALU instrukciju koja ima
jedan operand u memoriji i izvršava se za 2 ciklusa. Pretpostavimo da ova instrukcija povećava
broj clock ciklusa naredbe grananja za 1, ali da nema efekata na dužinu ciklusa. Da li se ovim
izmenama dobija poboljšanje CPU performansi? Naći CPI pre i posle poboljšanja.
Rešenje:
Treba utvrditi da li je nova mašina brža od stare. Nova mašina ima za 25% manje Load
instrukcija od stare. Prema tome, ukupan broj instrukcija nove mašine je:
Broj
Klasa Frekvencija
clock
instrukcije pojavljivanja
ciklusa
ALU R 0.75 ⋅ 43%
= 36.13% 1
operacije 0.8925
ALU M 0.25 ⋅ 43%
= 12.05% 2
operacije 0.8925
25% − 10.75%
Load = 11.49% 2
0.8925
12%
Store = 13.45% 2
0.8925
24%
Grananja = 26.89% 2
0.8925
4 Performanse računarskog sistema
4
Niold
CPI old = ∑ CPI iold ⋅ = 1⋅ 0.43 + 2 ⋅ 0.21 + 2 ⋅ 0.12 + 2 ⋅ 0.24 = 1.57
i =1 N old
old
TCPU = N old ⋅1.57 ⋅τ old
4
Ninew
CPI new = ∑ CPI inew ⋅ =2 ⋅ 0.1205 + 1⋅ 0.3613 + 2 ⋅ 0.1149 + 2 ⋅ 0.1345 + 3 ⋅ 0.2689 = 1.908
i =1 N new
new
TCPU = N new ⋅1.908 ⋅τ old = 0.8925 ⋅1.908 ⋅ N old ⋅τ old = 1.703 ⋅ N old ⋅τ old
1.2. MIPS
Alternativna mera izračunavanja performansi računara je MIPS (Million Instruction Per Second):
N instrukcija N instrukcija fc
MIPS = = =
TCPU ⋅10 6
N instrukcija ⋅ CPI ⋅τ ⋅10 6
CPI ⋅106
Rešenje:
Pošto je dat taktni interval, možemo lako da izračunamo taktnu frekvenciju na sledeći način:
1 1
fc = = = 50MHz
τc 20 ⋅10−9
Iz predhodnog zadatka imamo da je CPI old = 1.57 . Na osnovu definicije dobijamo da je:
f
MIPSold = c
= 31.85
CPI ⋅106
old
old
TCPU = N old ⋅ CPI old ⋅τ old = N old ⋅1.57 ⋅ 20 ns = N old ⋅ 31.40 ns
Marko D. Petković: Vežbe iz paralelne obrade 5
Broj
Klasa Frekvencija
clock
instrukcije pojavljivanja
ciklusa
ALU 0.75 ⋅ 43%
= 36.13% 1
operacije 0.8925
21%
Load = 15.29% 2
0.785
12%
Store = 15.29% 2
0.785
24%
Grananja = 30.57% 2
0.785
new
Sada jednostavno računamo CPI new , MIPSnew i TCPU :
Zadatak 5. Pretpostavite da ste glavni projektant novog procesora. Dizajn procesora i compilera
su okončani, ali ostaje da se donese odluka da li će se i dalje proizvoditi sadašnji dizajn ili je
vredno potrošiti još dodatnog vremena da bi se rešenje poboljšalo. O ovom problemu ste
diskutovali sa timom inžinjera hardverista i došli ste do zaključka da se mogu ponuditi sledeće
opcije:
a) Ne menjati rešenje – Ovaj tip mašine se naziva Rosn. Njegova taktna frekvencija je
500MHz a merenja na simulatoru su dala sledeće rezultate:
Ako Rosn izvršava 500 instrukcija klase A, tada će Rkom izvršavati 500 ⋅ 0.9 = 450
instrukcija klase A za isti program. Koliki je CPI za Rkom?
(4) Koliko puta je brži Rkom u odnosu na Rosn?
(5) Tim projektanata compilatora ukazao je da je moguće implementirati kako hardverska
tako i compilatorska poboljšanja. Ovakav tip mašine zvaćemo Rhps. Koliko puta je Rhps
brži u odnosu na Rosn?
Rešenje:
(1)
CPI osn = 2 ⋅ 0.4 + 3 ⋅ 0.25 + 3 ⋅ 0.25 + 5 ⋅ 0.10 = 2.8
500
MIPSosn = = 178.57
2.8
CPI pob = 2 ⋅ 0.4 + 3 ⋅ 0.25 + 3 ⋅ 0.25 + 4 ⋅ 0.10 = 2.7
600
MIPS pob = = 222.22
2.7
(2) Imamo da je Rpob brže 222.222 = 1.244 puta od Rosn.
178.57
(3) CPI kom = 0.9 ⋅ 2 ⋅ 0.4 + 0.9 ⋅ 3 ⋅ 0.25 + 0.85 ⋅ 3 ⋅ 0.25 + 0.95 ⋅ 5 ⋅ 0.10 = 2.5075 .
(4) Imamo da je Rkom brže 2.8 = 1.12 puta od Rosn. Pošto je taktna frekvencija ista
2.5075
za obe mašine, odnos brzine možemo dobiti deljenjem vrednosti CPI.
Marko D. Petković: Vežbe iz paralelne obrade 7
(5)
CPI hps = 0.9 ⋅ 2 ⋅ 0.4 + 0.9 ⋅ 3 ⋅ 0.25 + 0.85 ⋅ 3 ⋅ 0.25 + 0.95 ⋅ 4 ⋅ 0.10 = 2.4125
600
MIPS hps = = 248.70
2.4125
Imamo da je Rhps brže 248.70 = 1.393 puta od Rosn.
178.57
b) Ako optimizator eliminiše 30% aritmetičko/logičkih instrukcija (tj. 12% svih instrukcija),
30% Load instrukcija, i 20% floating-point instrukcija, odrediti veličine CPI i MIPS za
optimizovanu verziju programa i uporediti ih sa vrednostima koje su dobijene pod a) za
osnovni (neoptimizovani) program? Odrediti ubrzanje koje se može postići
optimizovanjem osnovnog programa.
Rešenje:
Rešenje:
a)
Broj
Klasa Frekvencija Broj ekvivalentnih Integer
instrukcija
instrukcije pojavljivanja instrukcija mašine M2
mašine M1
FP sabiranje 20% 100 10 10 100 10 1000 10
FP oduzimanje 15% 75 10 20 75 10 1500 10
FP mnozenje 10% 50 10 30 50 10 1500 10
FP deljenje 5% 25 10 40 25 10 1000 10
Integer 50% 250 10 250 10
Ukupno 100% 500 10 5250 10
Marko D. Petković: Vežbe iz paralelne obrade 9
b)
200 10 500 10
51.95
3.85 10 51.95 10
200 10 5250 10
100
2 10 100 10
c)
9.62s
10
52.5s
10
1.3. MFLOPS
Sledeća popularna alternativa vremenu izvršenja jeste MFLOPS (Million Floating Point
Operations Per Second).
N FPops
MFLOPS = .
TCPU ⋅106
Zadatak 8. Neka program radi 92 sekunde, U sledećoj tabeli je dat spisak FP operacija koje se
izvršavaju u tom programu:
Uporedjivanje 9.7
sin x 2.6
exp x 2.2
Konverzija 1.6
Ukupno 110.0
Rešenje:
110 ⋅106
MFLOPS prirodni = = 1.2
92s ⋅106
26 ⋅1 + 18.3 ⋅1 + 33.9 ⋅1 + 15.7 ⋅ 4 + 9.7 ⋅1 + 2.6 ⋅ 8 + 2.2 ⋅ 8 + 1.6 ⋅ 8
MFLOPSnormalizovani = = 2.2
92s
Zadatak 9. Posmatrajmo poboljšanje koje u 40% vremena računa 10 puta brže. Koliko je
ukupno ubrzanje ovog poboljšanja u celoj mašini?
Marko D. Petković: Vežbe iz paralelne obrade 11
Rešenje:
(1) U prvom slučaju se poboljšavaju kvadratni koreni realnih brojeva i to 10 puta, a ovih
operacija ima 20%.
(2) U drugom slučaju se vrši poboljšanje svih floating-point instrukcija kojih ima 50% a
ubrzanje je 2 puta.
Rešenje:
1 1
SpeedupFP = = = 1.33
⎛ 0.5 ⎞ 0.5 + 0.25
⎜ (1 − 0.5 ) + ⎟
⎝ 2 ⎠
1 1
SpeedupSQRT = = = 1.22
⎛ 0.2 ⎞ 0.8 + 0.02
⎜ (1 − 0.2 ) + ⎟
⎝ 10 ⎠
SpeedupFP > SpeedupSQRT