Výkonnost počítačů, empirické zákony o výkonnosti

Transkript

Výkonnost počítačů, empirické zákony o výkonnosti
Výkonnost počítačů, empirické
zákony o výkonnosti
INP 2008
FIT VUT v Brně
1
Moorův zákon
• Gordon Moore (Fairchild Semicondutor) si v r. 1965 všiml, že
počet tranzistorů na čipu procesoru se vždy za 18 až 24 měsíců
přibližně zdvojnásobí. Platí to dodnes a zdá se, že ještě několik
let bude…
No of T’s
1 mld
Alpha 221464
100 m
Pentium 4
10 m
Pentium II
Pentium Pro
Pentium
1m
I 486
I 386
100 k
80286
10 k
1000
1975
8086
1980
1985
1990
1995
2000
2005
2010
Year
2
Intel Penryn, dvoujádrový procesor - 410 mil. tranzistorů na čipu
Čtyřjádrová verze - 820 mil. tranzistorů na čipu.
Technologie: 45 nm, umožněno vytvořením nového typu tranzistoru
Zdroj: IEEE Spectrum 11/2007
3
Historický vývoj parametrů (1)
CPU
processor
clock rate(MHz)
cycle time(ns)
1980
8080
1
1000
1985
286
6
166
1990
386
20
50
1995
Pentium
150
6
2000
P-III
750
1.3
2005
P-4
3000
0.3
2005:1980
1980
19200
300
1985
2900
150
1990
320
35
1995
256
15
2000
100
12
2005
75
10
2005:1980
256
30
1980
8000
375
0.064
1985
880
200
0.256
1990
100
100
4
1995
30
70
16
2000
1
60
64
2005
0.20
50
1000
2005:1980
40000
8
15000
1980
500
87
1
1985
100
75
10
1990
8
28
160
1995
0.30
10
1000
2000
0.05
8
9000
2005
0.001
4
400000
2005:1980
10000
22
400000
3000
3333
SRAM
metric
$/MB
access (ns)
DRAM
metric
$/MB
access (ns)
typical size(MB)
Disk
metric
$/MB
access (ms)
typical size(MB)
4
Historický vývoj parametrů (2)
5
Dlouhodobé pozorování:
nárůst kapacity a rychlosti
Logika:
DRAM:
Disk:
Kapacita
Rychlost (1/latence)
2x za 3 roky
4x za 3 roky
4x za 3 roky
2x za 3 roky
2x za 10 let
2x za 10 let
6
Rozdíl mezi výkonností CPU a paměti
CPU
1000
CPU
Moorův zákon
10
Rozdíl ve
výkonnosti roste
o 50% za rok!
DRAM
1
DRAM
9%/rok
(2X/10let)
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
výkonnost
100
60% za rok
(2X/1.5roku)
7
Lokalita odkazů (1)
Analýzou napsaného programu zjistíme tzv. statickou četnost
jednotlivých instrukcí.
K naprosto odlišným výsledkům dojdeme sledováním četnosti
instrukcí během provedení programu, tj. dynamické četnosti. V
programu se opakovaně provádějí instrukce uvnitř cyklů, procedur
apod., takže docházíme k empirickému poznatku, že v programech je
zřejmá tendence používat znovu ty instrukce (a ta data), které již byly
jednou, nebo vícekrát použity.
Velmi zhruba platí, že procesor stráví 90% svého času prováděním
pouze 10% ze všech instrukcí programu (tzv. pravidlo 90/10).
8
Lokalita odkazů (2)
Časová lokalita odkazů znamená, že pokud procesor použil v jistém
okamžiku určitou instrukci, pak pravděpodobnost, že ji v dalším
okamžiku bude provádět znovu je větší, než je pravděpodobnost použití
instrukce, kterou dosud nepoužil.
Prostorová lokalita odkazů se vyjadřuje pravidlem, že pokud bral
program v poslední době instrukce z jistého bloku paměti, pak je velká
pravděpodobnost, že v následující době bude brát instrukce zase z
tohoto bloku. Princip časové a prostorové lokality odkazů platí i pro
data, ovšem v daleko menší míře.
Přesné údaje o lokalitě odkazů se mění podle konkrétního programu,
na němž měření četnosti probíhá.
9
Rychlá vyrovnávací paměť „cache“
Na základě zjištěné zákonitosti o lokalitě odkazů bylo modifikováno schéma
von Neumannovského počítače doplněním rychlé vyrovnávací paměti RVP
(cache) mezi procesor a paměť M. Můžeme proto již mluvit o hierarchii pamětí,
protože nejblíže procesoru jsou jeho vnitřní registry, což je vlastně paměť na
nejnižší úrovni, další úroveň je tvořena blokem RVP, pomocí paměťové
sběrnice je umožněn přístup do třetí paměťové úrovně, tedy do paměti M, a
čtvrtá, nejvzdálenější je vnější paměť (disk).
CPU
(registry)
RVP
(cache)
paměťová
sběrnice
HLAVNÍ
PAMĚŤ M
V/V
sběrnice
VNĚJŠÍ
PAMĚŤ
V této struktuře se již strojové cykly CPU nesynchronizují s cykly hlavní
paměti M, nýbrž s RVP. Díky lokalitě odkazů může být kapacita RVP
výrazně menší, než kapacita M a tudíž mohou být použity rychlejší a
dražší paměťové obvody.
10
Amdahlův zákon o urychlení výpočtu
Amdahlův vztah hodnotí urychlení činnosti systému zavedením
rychlejšího zpracování části úlohy. Doby provedení výpočtu před a po
úpravě si označíme jako te stará a te nová, poměrnou velikost úseku
zpracování, jehož se týká urychlení, označíme číslem f, f < 1, a
koeficient urychlení označíme r, pak
te nová = te stará ((1 - f) + f/r)
a celkové urychlení Vr je rovno
Vr = te stará / te nová
Vr = 1 / ((1 - f) + f/r)
te stará = 1
f
1 -f
1-f
f/r
te nová
11
Zrychlení jako funkce f , r = konst.
Př. Jakého urychlení dosáhneme, pokud vložíme do počítače RVP, která je 5x
rychlejší než hlavní paměť a je využita v 90% případů?
6
5
vr
4
3
f=0.9, r=5,
Vr =3.57
2
1
0
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1
f
12
Definice výkonnosti počítače
•
•
•
•
•
Výkonnost počítače se posuzuje několika způsoby.
Z hlediska uživatele je základním výkonovým ukazatelem doba (provedení)
výpočtu, označovaná te (execution time).
Z hlediska provozovatele systému, který poskytuje služby uživatelům, je
hlavním parametrem výkonnosti propustnost systému Pe, tedy počet
transakcí, které je systém schopen uskutečnit za časovou jednotky.
Absolutní měření výkonnosti je velmi problematické. Schůdnější je hodnotit
výkonnost relativně, tj. vzhledem k referenčnímu počítači, jako např. PC XT
4,7 MHz, nebo VAX-11/780.
Je-li výkonnější počítač označen X a méně výkonný Y, lze pro poměr jejich
výkonností (propustností) Pe a dob výpočtu te psát
PeX/PeY = teY/teX = 100 + n
a říkáme "počítač X je o n % výkonnější než počítač Y", nebo "počítač Y má
o n % delší dobu výpočtu než X".
13
Měření výkonnosti
•
•
•
•
•
•
Převážná část počítačů je zkonstruovaná s využitím konstantního
hodinového kmitočtu fC. Docházíme tak ke konstantní době cyklu TC =1/ fC,
např. 10 ns.
Doba výpočtu:
te = Počet hodinových cyklů během programu x TC
(1)
Můžeme spočítat počet provedených instrukcí programu Počet I a určit
důležitý parametr procesoru - počet cyklů na provedení jedné instrukce
CPI - Cycles Per Instruction.
CPI = Počet hodinových cyklů během programu / Počet I
(2)
tedy Počet hod. c. během prog. = CPI x Počet I
(3)
Po dosazení (3) do rovnice (1) dostaneme
(4)
te = Počet I x CPI x TC
Počet instrukcí v programu je dán řešenou úlohou a je ovlivněn
architekturou instrukčního souboru (Instruction Set Architecture - ISA) a
technologií kompilátoru, parametr CPI je dán architekturou ISA, a TC je
dána použitou obvodovou technologií a organizací obvodů počítače.
14
Měření výkonnosti v jednotkách MIPS
• Alternativou k době provedení je počet operací provedených za
sekundu, udávaný pro současné počítače v jednotkách MIPS.
PMIPS = Počet I / (te x 106) = fc / ( CPI x 106)
(5)
• Pozn.: Poslední výraz byl získán pomocí vztahu
te = ( Počet I x CPI ) / fc
(6)
• Výhodou této definice je její jednoduchost, ale její použití pro
srovnávání výkonnosti počítačů se sebou nese některé
problémy.
• Např. PMIPS je závislý na instrukčním souboru, takže je
problematické srovnávat počítače s různými instrukčními
soubory.
15
Měření výkonnosti v jednotkách MIPS
• Řešením by mohlo být definovat výkonnost relativně vzhledem k
referenčnímu počítači, a pracovat s relativním PMIPS.
• Relativní PMIPS = ( te ref. počítače x PMIPS ref. počítače ) / te měř. počítače
• PMIPS ref. počítače je dohodnuté číslo. Od r. 1980 se značně rozšířilo uznání
počítače VAX - 11/780 za referenční počítač, který byl označen za "1
MIPS" stroj. Od r. 1995 byl nahrazen počítačem SUN SPARCstation
10/40. Rovněž v kategorii osobních počítačů je zvykem udávat
výkonnost relativně vzhledem k referenčnímu počítači, např. P100,
Pentium 1GHz atd.
• Je otázka, zda by na starším referenčním počítači měla běžet poslední
verze kompilátoru a operačního systému, nebo zda je třeba stav
programového vybavení referenčního počítače zakonzervovat a
nepřipustit, aby se měnilo a zdokonalovalo.
• Je rovněž lákavé použít pro zjištění relativního PMIPS jako měřicího
programu jednu zkušební úlohu, přesto, že by docházelo ke značným
odchylkám v relativní výkonnosti.
• Rovněž relativní PMIPS není příliš objektivní.
16
Měření v jednotkách MFLOPS
•
Pro počítače s jednotkou pro práci s čísly s pohyblivou řádovou čárkou (FP)
se udává výkonnost v počtu operací s pohyblivou řádovou čárkou (FLOPS).
PMFLOPS = Počet FP operací / ( te x 106 )
•
Zde opět záleží na počítači a na programu. Problém je, že instrukční soubory
FP nejsou u všech počítačů stejné.
– Např. počítač Cray - 2 nemá FP dělení a jeho porovnání např. s procesorem
Motorola 68 882, který má FP dělení, odmocninu, sin, cos atd. je pak nekorektní.
– Složitost FP operací je různá. Operace sčítání je značně rychlejší, než operace
dělení. Program se 100% operací sčítání pak zjistí vyšší výkonnost než program
se 100% operací dělení.
•
Aby parametr PMFLOPS tyto rozdíly správně zachytil, byly definovány
kanonické počty FP operací ve zkušebním programu. Každá operace FP se
pak ohodnotí vahou, která representuje její složitost a dostaneme parametr
normalizovaný PMFLOPS .
•
Váhy FP operací podle Livermore Loops
– ADD, SUB, CMP, MPY
– DIV, SQRT
– EXP, SIN
1
4
8
17
Programy pro hodnocení výkonnosti
•
•
•
•
•
•
Metodika měření výkonnosti je značně rozsáhlá a složitá a neustále se vyvíjí.
1. Reálné programy – nejobjektivnější metoda. Nakupované programové
produkty pro řešení konkrétních úloh uživatele, jako kompilátor C, textový
editor, návrhový systém pro automatizovaný návrh logických obvodů.
2. Jádra (kernels) - nejvýznamnější části skutečných programů, jako např.
Livermore Loops a Linpack. Samy o sobě v reálném provozu nikdy neběží.
Nejlépe se hodí k vyhodnocení jistého rysu počítače a k vysvětlení rozdílů v
chování reálných programů.
3. Demonstrační zkušební úlohy (toy benchmarks) - typicky 10 až 100 řádků
programu, slouží k populární demonstraci výkonnosti počítače. Např.
Quicksort, Erastothenovo síto, různé skládačky (puzzles) ap.
4. Syntetické zkušební úlohy (synthetic benchmarks) - mají obdobnou filosofii
jako jádra, snaží se vystihnout průměrné frekvence operací a dat na
rozsáhlých množinách programů. Z historie jsou známé instrukční mixy, jako
GPO-WU II (General Post Office - Work Unit II), Gibson mix, Norton index pro
osobní počítače, Landmark atd. U nás byla pro hodnocení výkonnosti počítačů
zavedena norma ČSN 36 9306, která používala pro počítače v oblasti
vědeckotechnických výpočtů mix Gibson III a pro plánovací a ekonomické
úlohy mix GPO-WU II.
V minulosti bylo nejrozšířenější použití benchmarků, jako Whetstone
benchmark s převahou operací v pohyblivé řádové čárce a Dhrystone
benchmark s převahou operací v pevné řádové čárce.
18
SPEC
• Nejdokonalejší jsou série reálných benchmarků SPEC (System
Performance Evaluation Cooperative): SPEC89, SPEC92, SPEC95
a SPEC2000
• Skupiny měřicích programů se neustále mění tak, aby se
objektivizovalo měření a pokrývaly se moderní aplikace
• SPECint pro operace s pevnou řádovou čárkou – nyní 12 programů,
jako komprese dat, rozmisťování a propojování obvodů FPGA,
compilátor jazyka C, šachy, textový editor, vizualizace, objektová
databáze atd.
• SPECfp pro operace s pohyblivou řádovou čárkou – nyní 14
programů, jako 3D grafická knihovna, modelování mělké vody,
neuronová síť pro rozpoznávání obrazů, simulace šíření seizmické
vlny, zpracování a rozpoznávání obrazu lidské tváře, teorie čísel testování prvočíselnosti, šíření znečištění atmosférou atd.
• Pro každou úlohu se zjistí relativní doba výpočtu (vzhledem k
referenčnímu počítači). Ve skupinách int, fp se pak odděleně
vypočte tzv. geometrický průměr, což je n-tá odmocnina ze součinu
n relativních dob provedení. Výsledkem jsou dva výkonové
parametry SPECint a SPECfp.
19

Podobné dokumenty

Integer Real

Integer Real function Vyraz:integer;forward; potom už stačí psát jenom function vyraz; ale je blbost to dělat když to nadeklaruju dvakrát jinak tak mi to vyhlásí chybu - je to dobře protože

Více

Prezentace aplikace PowerPoint - Dokumenty Google – práce s

Prezentace aplikace PowerPoint - Dokumenty Google – práce s Požadavky na studenta Udělení zápočtu je podmíněno vypracováním a klasifikací dílčích semestrálních prací na zadané téma a 75 % docházkou. Zkouška proběhne formou písemného testu a závěrečné rozpra...

Více

CISCO Network Academy

CISCO Network Academy do schématu Ethernetu i technologií na vyšších vrstvách. Ovšem pokud jejich počet příliš vzroste, tak to má veliký dopad na výkonnost sítě. Kolizní a broadcastové domény jsou určeny k řešení takový...

Více

Výkonnost počítače

Výkonnost počítače Použití podmnožiny faktorů (taktovací frekvence, CPI, počet instrukcí) jako samostatné metriky Použit jen jednoho faktoru je téměř vždy špatně Použit dvou faktorů může být ve specifických případech...

Více

Výběr zdrojů, zadávání a správa úloh

Výběr zdrojů, zadávání a správa úloh • všechny fyzické stroje s dostatečnou pamětí jsou virtualizovány • obvykle dva virtuální stroje -1 a -2 • využito na clusterech orca a skirit č.49-81 • fronty orca a preempt@arien posílají úlohy d...

Více

end loop

end loop Úkol (task Ada) je programová jednotka (část programu), která může být prováděna paralelně s ostatními částmi programu. Každý úkol může představovat jedno vlákno. Odlišnost vláken/úkolů/procesů od ...

Více