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 100 m 10 m 1 m 100 k 10 k 8086 80286 I 486 I 386 Pentium II Pentium Pro Pentium Alpha 221464 Pentium 4 1000 1975 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
CPU Historický vývoj parametrů (1) 1980 1985 1990 1995 2000 2005 2005:1980 processor 8080 286 386 Pentium P-III P-4 clock rate(mhz) 1 6 20 150 750 3000 3000 cycle time(ns) 1000 166 50 6 1.3 0.3 3333 SRAM metric 1980 1985 1990 1995 2000 2005 2005:1980 $/MB 19200 2900 320 256 100 75 256 access (ns) 300 150 35 15 12 10 30 DRAM metric 1980 1985 1990 1995 2000 2005 2005:1980 $/MB 8000 880 100 30 1 0.20 40000 access (ns) 375 200 100 70 60 50 8 typical size(mb) 0.064 0.256 4 16 64 1000 15000 Disk metric 1980 1985 1990 1995 2000 2005 2005:1980 $/MB 500 100 8 0.30 0.05 0.001 10000 access (ms) 87 75 28 10 8 4 22 typical size(mb) 1 10 160 1000 9000 400000 400000 4
Historický vývoj parametrů (2) 5
Dlouhodobé pozorování: nárůst kapacity a rychlosti Kapacita Rychlost (1/latence) Logika: 2x za 3 roky 2x za 3 roky DRAM: 4x za 3 roky 2x za 10 let Disk: 4x za 3 roky 2x za 10 let 6
1000 100 10 1 Rozdíl mezi výkonností CPU a paměti Moorův zákon CPU CPU 60% za rok (2X/1.5roku) Rozdíl ve výkonnosti roste o 50% za rok! DRAM DRAM 9%/rok (2X/10let) 7 výkonnost 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000
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 t e stará a t e 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 t e nová = t e stará ((1 - f) + f/r) a celkové urychlení V r je rovno te stará = 1 1 -f f V r V r = t e stará / t e nová = 1 / ((1 - f) + f/r) 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 4 vr 3 2 f=0.9, r=5, Vr =3.57 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á t e (execution time). Z hlediska provozovatele systému, který poskytuje služby uživatelům, je hlavním parametrem výkonnosti propustnost systému P e, 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í) P e a dob výpočtu t e psát P ex /P ey = t ey /t ex = 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 f C. Docházíme tak ke konstantní době cyklu T C =1/ f C, např. 10 ns. Doba výpočtu: t e = Počet hodinových cyklů během programu x T C (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 t e = Počet I x CPI x T C (4) 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 T C 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. P MIPS = Počet I / (t e x 10 6 ) = f c / ( CPI x 10 6 ) (5) Pozn.: Poslední výraz byl získán pomocí vztahu t e = ( Počet I x CPI ) / f c (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ř. P MIPS 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 P MIPS. Relativní P MIPS = ( t e ref. počítače x P MIPS ref. počítače ) / t e měř. počítače P MIPS 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 P MIPS 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í P MIPS 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). P MFLOPS = Počet FP operací / ( t e x 10 6 ) 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 P MFLOPS 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ý P MFLOPS. Váhy FP operací podle Livermore Loops ADD, SUB, CMP, MPY 1 DIV, SQRT 4 EXP, SIN 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