2 - Katedra Informatyki > Home

Transkrypt

2 - Katedra Informatyki > Home
Architektura systemów komputerowych
Wydajność systemów komputerowych
Cezary Bolek
Katedra Informatyki
Plan wykładu
Wydajność systemu komputerowego
Cykl zegarowy
Liczba cykli zegarowych na instrukcję
Wyznaczanie wydajności
Zwiększenie wydajności
Miary wydajności
MIPS
Wady
SPEC
Architektura systemów komputerowych
Cezary Bolek
2
Wydajność systemu komputerowego
Rzeczywisty czas wykonania zadania
Liczy się wszystko: czas oczekiwania, operacje we/wy, obsługa
przez system operacyjny
PoŜyteczne, lecz mało miarodajne do oceny – brak obiektywizacji
Na razie: czas wykonania programu przez CPU
Czas potrzebny na realizację instrukcji programu
Nie brane pod uwagę czas realizacji operacji we/wy oraz czas
obsługi przez OS
MoŜe być wyraŜone w sekundach
Bądź odniesione do liczby cykli zegarowych
Architektura systemów komputerowych
Cezary Bolek
3
Cykle zegarowe
Cykl zegarowy = okres zegara = 1 / szybkość zegara
Cykl 1
Cykl 2
Cykl 3
Szybkość zegara = częstotliwość zegara = cykle na sek.
2 Ghz = 2×109 cykli/sek.
Zegar o częstotliwości 2 GHz ma okres = 1/(2×109) = 0.5 ns
Często uŜywa się cykle zegarowe w celu przedstawienia
czasu wykonywania programu przez CPU.
Czas wykonania CPU = Cykle CPU × okres zegara =
Architektura systemów komputerowych
Cezary Bolek
Cykle CPU
Szybkość zegara
4
Zwiększenie wydajności
Aby zwiększyć wydajność naleŜy:
Zmniejszyć liczbę cykli niezbędnych do realizacji programu
Zmniejszyć długość cyklu zegarowego (zwiększyć szybkość zegara)
Przykład:
Program realizujący pewne zadanie w ciągu 10 sekund na
komputerze X z zegarem 2 GHz
Cel: system komputerowy Y realizujący dane zadanie w ciągu 6 sekund
Ale: system Y wymaga o 10% więcej cykli zegarowych
Jaka musi być szybkość zegara systemu Y ?
Rozwiązanie
Liczba cykli systemu X = 10 s. × 2 × 109 cykli/s = 20 × 109 cykli
Liczba cykli systemu Y = 1.1 × 20 × 109 = 22 × 109 cykli
Szybkość zegara Y = 22 × 109 cykli / 6 s. = 3.67 GHz
Architektura systemów komputerowych
Cezary Bolek
5
Liczba cykli zegarowych na instrukcję
Clock Cycles per Instruction (CPI)
RóŜne instrukcje potrzebują róŜnej liczby cykli zegarowych
MnoŜenie wymaga więcej cykli niŜ dodawanie
Dostęp do pamięci wymaga więcej cykli niŜ dostęp do rejestrów
CPI określa średnią liczbę cykli zegarowych na instrukcję
I1
1
I2
2
3
I3
4
5
6
I4 I5
7
8
9
I6
CPI = 14/7 = 2
I7
10 11 12 13
14
cykl
Zmiana długości cyklu zegarowego często powoduje
zmianę liczby cykli dla określonych instrukcji
Architektura systemów komputerowych
Cezary Bolek
6
Czas wykonania programu
Aby wykonać pewien program potrzeba:
wykonać określoną liczbę instrukcji
określonej liczby cykli zegarowych
wynikającą z tego określonego czasu
Liczba cykli zegarowych wynika z liczby wykonanych
instrukcji:
Cykle zegarowe CPU = Liczba instrukcji × CPI
Czas wykonywania programu (wydajność):
Czas
= Liczba instrukcji × CPI × długość cyklu
Architektura systemów komputerowych
Cezary Bolek
7
Wyznaczanie wydajności
ZałoŜenie: dwa systemy o takim samym model
programowym jednostki centralnej (ISA), lecz odmiennie
zaimplementowane
Dla pewnego programu:
Komputer A - zegar 4GHz (cykl zegarowy 250ps) oraz CPI=2,0
Komputer B - zegar 2GHz (cykl zegarowy 500ps) oraz CPI=1,2
Wydajność:
Obydwa komputery wykonują taką samą liczbę instrukcji – N
Czas wykonywania CPU (A) = N × 2,0 × 250 ps = 500 × N ps
Czas wykonywania CPU (B) = N × 1,2 × 500 ps = 600 × N ps
Komputer A jest szybszy od B:
Architektura systemów komputerowych
600 × I
500 × I
Cezary Bolek
= 1,2 razy
8
Określanie CPI
RóŜne klasy instrukcji wykonywane są róŜnej liczbie cykli
ZałoŜenie: CPIi = liczba cykli zegarowych dla inst. klasy i
C = liczba instrukcji klasy i
∑ (CPI × C )
n
∑ (CPI × C )
i
n
Cykle CPU =
i
CPI =
i
i=1
i=1
i
∑C
n
i
i=1
Projektanci często wyznaczają CPI na podstawie symulacji
Architektura systemów komputerowych
Cezary Bolek
9
Określanie CPI - przykład
Dla określonego zestawu instrukcji procesora MIPS
Jaki jest średnie CPI ?
Jaki jest średni, procentowy udział kaŜdej klasy instrukcji w
czasie wykonywania ?
Klasa
Częst
CPI
CPI × Częst
% czasu
ALU
Load
Store
Branch
50%
20%
10%
20%
1
5
3
2
0,5×1 = 0,5
0,2×5 = 1,0
0,1×3 = 0,3
0,2×2 = 0,4
0,5/2,2 = 23%
1,0/2,2 = 45%
0,3/2,2 = 14%
0,4/2,2 = 18%
Średnie CPI = 0,5 + 1,0 + 0,3 + 0,4 = 2,2
Architektura systemów komputerowych
Cezary Bolek
10
MIPS jako miara wydajności
MIPS: Millions Instructions Per Second,
Milion instrukcji na sekundę
UŜywana jako miara wydajności systemów komputerowych
Szybszy system ⇒ większe MIPS
MIPS określa średnią szybkość wykonywania instrukcji
MIPS =
Instruction Count
Execution Time × 106
=
Clock Rate
CPI × 106
MIPS moŜe określać czas wykonywania
Execution Time =
Architektura systemów komputerowych
Inst Count
MIPS × 106
=
Inst Count × CPI
Clock Rate
Cezary Bolek
11
Wady MIPS jako miary wydajności
Nie uwzględnia moŜliwości poszczególnych instrukcji
Nie moŜna porównywać komputerów z róŜnymi zestawami instrukcji
gdyŜ udział poszczególnych instrukcji jest róŜny
Współczynnik MIPS dla róŜnych programów na tym samym
komputerze jest róŜny
Nie moŜna uŜywać tego samego współczynnika MIPS dla
wszystkich programów
MIPS moŜe maleć wraz ze wzrostem rzeczywistej
wydajności
WyŜszy współczynnik MIPS nie zawsze musi oznaczać wyŜszą
wydajność
MIPS nie uwzględnia architektury całego komputera, odnosi
się tylko do CPU
Architektura systemów komputerowych
Cezary Bolek
12
MIPS – przykład 1/2
Dwa róŜne kompilatory zostały uŜyte do wygenerowania
kodu dla komputera taktowanego częstotliwością 4GHz.
UŜyte zostały instrukcje naleŜące do trzech klas: A, B i C,
które realizowane są w odpowiednio: 1, 2 i 3 cyklach
zegarowych.
Pierwszy kompilator wygenerował kod, który podczas
realizacji wykonuje: 5 miliardów instrukcji klasy A, 1 miliard
instrukcji klasy B i 1 miliard instrukcji klasy C
Drugi: 10 miliardów instrukcji klasy A, 1 miliard instrukcji
klasy B i 1 miliard instrukcji klasy C
Który kompilator generuje wyŜszy współczynnik MIPS ?
Który kompilator generuje szybciej wykonywany kod ?
Architektura systemów komputerowych
Cezary Bolek
13
MIPS – przykład 2/2
Liczba cykli CPU dla obydwu kodów:
Liczba cykli CPU (kompilator 1) = (5×1 + 1×2 + 1×3)×109 = 10×109
Liczba cykli CPU (kompilator 2) = (10×1 + 1×2 + 1×3)×109 = 15×109
Czas wykonywania dla obydwu kodów:
Czas wykonywania (kompilator 1) = 10×109 cykli / 4×109 Hz = 2,5 s.
Czas wykonywania (kompilator 2) = 15×109 cykli / 4×109 Hz = 3,75 s.
Kompilator 1 generuje szybszy kod (krótszy czas wykonyw.)
Współczynnik MIPS dla obydwu kompilaotrów:
MIPS = Liczba instrukcji / (Czas wykonywania × 106)
MIPS (kompilator 1) = (5+1+1) × 109 / (2,5 × 106) = 2800
MIPS (kompilator 1) = (10+1+1) × 109 / (3,75 × 106) = 3200
Kod wygenerowany przez kompilator 2 charakteryzuje się
wyŜszym współczynnikiem MIPS
Architektura systemów komputerowych
Cezary Bolek
14
Miary wydajności
Wydajność najlepiej jest ocenić w kontekście szybkości
działania rzeczywistych aplikacji
Programy generujące typowe obciąŜenie
Reprezentujące klasy typowych zastosowań
Kompilatory, edytory, CAD/CAM, przetwarzanie grafiki
SPEC (System Performance Evaluation Corporation)
załoŜona w 1988 r. organizacja z siedzibą w Warrenton, Virginia,
zajmująca się ustanawianiem standardowych benchmarków
oceniających wydajność komputerów.
Jej pierwszym testem wydajności był SPECmark badający CPU, w
którym jednostką był ekwiwalent wydajności maszyny VAX 11/780.
ChociaŜ testy SPEC w dalszym ciągu badają CPU, organizacja
opracowała teŜ inne testy, np. do oceny podsystemu graficznego
czy rozmaitych kategorii aplikacji.
Architektura systemów komputerowych
Cezary Bolek
15
SPEC CPU2006
12 Integer benchmarks (C and C++)
14 FP benchmarks (Fortran 77, 90, and C)
Name
Description
Name
Description
gzip
vpr
gcc
mcf
crafty
parser
eon
perlbmk
gap
vortex
bzip2
twolf
Compression
FPGA placement and routing
GNU C compiler
Combinatorial optimization
Chess program
Word processing program
Computer visualization
Perl application
Group theory, interpreter
Object-oriented database
Compression
Place and route simulator
wupwise
swim
mgrid
applu
mesa
galgel
art
equake
facerec
ammp
lucas
fma3d
sixtrack
apsi
Quantum chromodynamics
Shallow water model
Multigrid solver in 3D potential field
Partial differential equation
Three-dimensional graphics library
Computational fluid dynamics
Neural networks image recognition
Seismic wave propagation simulation
Image recognition of faces
Computational chemistry
Primality testing
Crash simulation using finite elements
High-energy nuclear physics
Meteorology: pollutant distribution
Miarą jest rzeczywisty czas wykonania odniesiony do systemu
wzorcowego
Architektura systemów komputerowych
Cezary Bolek
16
SPECmark – przykładowe zestawy komputerowe
System
Dell Precision
M90 (Intel
T7600, 2.33
GHz)
CINT2006
CFP2006
Rdze
nie
Proce
sory
Rdzeni/
proc.
23
19.5
2
1
2
Intel
Core 2
Duo
T7600
2333
2 GB (2x1 GB
667 MHz CL5
DDR2 SDRAM)
3000
4 GB (4x1 GB
800 MHz ECC
CL6 DDR2)
Procesor
Taktowanie
proc. [GHz]
Pamięć
Dell Precision
T3400 (Intel
E6850, 3.00
GHz)
33.7
28.8
2
1
2
Intel
Core 2
Duo
E6850
Dell Precision
T3400 (Intel
E8500, 3.16
GHz)
36.8
30.5
2
1
2
Intel
Core 2
Duo
E8500
3166
4 GB (4x1 GB
800 MHz ECC
CL6 DDR2)
Dell Precision
690 (Intel Xeon
5160, 3.00
GHz)
53.2
42.3
4
2
2
Intel
Xeon
5160
3000
8 GB (8x1 GB
667 MHz ECC
CL5 DDR2 FBDIMM)
XPS M1710
(Intel Core 2
Duo T7600)
23.9
19.9
2
1
2
Intel
Core 2
Duo
T7600
2333
2 GB (2x1GB
Hynix DDR2-667
CL5)
Architektura systemów komputerowych
Cezary Bolek
17
Koniec
Architektura systemów komputerowych
Cezary Bolek
1
8