Výrobci udávají v popisu svých produktů nejčastěji teoretický výkon procesoru P , který znamená toto: je-li hodinová frekvence procesoru f MHz a v jednom taktu se v procesoru může provést n operací, pak je
P = nf Mflop/s.
Je-li např. možné současně provádět jedno násobení a jedno sčítání, uvažuje se, že se v jednom cyklu provádějí dvě operace a výkon se uvádí jako
P = 2f Mflop/s.
Jestliže je v procesoru více funkcionálních jednotek, násobí se hodinová frekvence jejich počtem.
Nepravděpodobnost dosažení takto vypočítaného výkonu P vyplývá např. z toho, že současně lze operace provádět jen ve zlomku taktů, protože se za sebou pravidelně nevyskytují.
Reálný výkon procesoru je proto vždy nižší než teoretický a poměr závisí na mnoha okolnostech, samozřejmě i na typu programu.
Výkon celého počítače se stanovuje ještě složitěji, protože roli nehraje jen výkon samotného procesoru, ale řada dalších okolností. Je tedy i teoretický výkon počítače (odvozený mechanicky z teoretického výkonu jeho procesorů) údaj z hlediska aplikací neužitečný. Reálné výkony počítačů (nejen superpočítačů) se porovnávají podle jejich výkonu při řešení souboru standardních úloh; anglicky se této metodě říká benchmarking .
Příklady standardních výpočetních benchmarků :
Není možné jednoznačně říci, zda některý z těchto standardních benchmarků je lepší než jiný, vždy to záleží na tom, jak blízko je ten či onen benchmark aplikacím, které se na počítači zpracovávají. Nejznámější LINPACK má některé přednosti:
Nevýhodou LINPACKu je, že se stal natolik populární, že návrháři architektury a kompilátorů myslí už předem na výkon tohoto souboru programů a snaží se, aby byl co nejlepší. Skoro žádná reálná aplikace však není složena jen z řešení soustav lineárních rovnic a výkon počítače v LINPACKU a reálný výkon od sebe bývají také dost vzdáleny - i když ne tolik jako v případě porovnávání s teoretickým výkonem počítače. Výběr počítače by se měl opírat o soubor předpokládaných aplikací, na němž bude každý počítač mít patrně jiný výkon než na souboru programů LINPACK , LAPACK , NAS nebo SPEC , a jejichž spektrum musí být co nejširší. Proto je nanejvýš žádoucí připravit si vlastní benchmark, který by se měl definovaným způsobem zpracovat na všech počítačích, o nichž se uvažuje.
Přehledem výkonu počítačů nejrůznějších architektur převážně na základě benchmarků LINPACK a LAPACK se soustavně zabývá profesor J. Dongarra z univerzity v Tennessee a jeho přehled je průběžně aktualizován a zveřejňován na internetové stránce www.netlib.org/liblist.html .
Prakticky dosahovaný výkon bývá v nejlepším případě kolem 50-70% teoretického špičkového výkonu a v případě masivně paralelních počítačů se ve výpočetních střediscích považují úlohy za adekvátní této architektuře, když to je aspoň 10%!
Na základě benchmarku LINPACK je už několik let dvakrát do roka sestavována aktuální tabulka TOP500 , která udává 500 nejvýkonnějších počítačů na světě. Lze ji nalézt na internetové stránce www.netlib.org/benchmark/top500/top500.list.html .
Je smutnou skutečností, že žádný počítač z České republiky se v této tabulce ještě neobjevil: ačkoli již několikrát se mohl některý nový počítač do publikované tabulky dostat, na následující aktuální verzi však již nestačil!
Pro ilustraci jsme vybrali malou ukázku benchmarku LINPACK . V tabulce jsou uvedeny rychlosti fortranských programů pro řešení hustých systémů lineárních rovnic z této knihovny. Pro stručnost jsme nespecifikovali volby (options) při kompilaci, ačkoli i ty mají nezanedbatelný vliv. Sloupce v těchto tabulkách mají následující význam:
- Linpack
udává počet Mflops, které odpovídají řešení problému podle standardního programu z balíku pro matici řádu 100.- Peak
udává špičkový výkon v Mflops spočítaný mechanicky z hardwarových parametrů.
Počítač
Procesor
Linpack
Peak
Pentium Pro
200 MHz
38
200
IBM RS/6000
F500 (332 MHz)
116
664
SUN HPC6000
Ultra Sparc
110
500
HP Exemplar (S)
156
360
NEC SX-4
578
2000
Cray T90
705
1800
Tabulka 1
LINPACK na některých počítačích
Abychom dokumentovali význam rychlosti komunikace mezi procesorem a pamětí, o níž jsme se již několikrát zmínili, uvedeme krátce výsledky benchmarku STREAM , který je určen speciálně pro posouzení této závažné, ale často podceňované charakteristiky počítačů. Její závažnost dokonce stále roste, protože rychlost procesoru se každoročně zvyšuje asi o 80 %, ale rychlost paměťových prvků roste jen asi o 7 % ročně. Před deseti lety trvala operace v pohyblivé čárce tak dlouho jako několik – až deset – čtení nebo zápisů do paměti. Nyní je situace opačná: nejrychlejší procesory mohou realizovat sto i více operací v pohyblivé čárce za dobu, která odpovídá jednomu čtení nebo zápisu do paměti!
Prvou reakcí konstruktérů počítačů na tento zvrat bylo zavádění cache , čímž bylo pro mnoho typů úloh téměř dosaženo rovnováhy. Avšak v případě, že cache nestačí zásobovat procesor daty, klesá jeho výkon až na 4–5 % špičkového výkonu. Je proto důležité znát chování počítačů také v tomto ohledu.
Pro účely tohoto benchmarku byl zaveden pojem rovnováha ( machine balance ) jako
špičkový výkon v pohyblivé čárce
skutečný výkon paměti
Výkonem se zde rozumí v čitateli počet operací v jednom taktu a ve jmenovateli počet paměťových operací (čtení, zápisů) v jednom taktu. Hodnota tohoto zlomku určuje přibližně počet operací v pohyblivé čárce, které se realizují za čas potřebný na jeden průměrný přístup k paměti. Určitá nepřesnost vzniká z toho, že se v čitateli uvažuje špičkový výkon ; odůvodňuje se to tím, že při operacích na argumentech umístěných v registrech bývá jejich skutečný počet za časovou jednotku blízký špičkovému. Nejvhodnější rovnováha je vyjádřena hodnotou 1.
Benchmark STREAM je program ve fortranu, který měří časy čtyř operací s dlouhými vektory (8 Bytů) uvedených v tabulce 2. Tyto operace vhodně reprezentují elementární vektorové operace, z nichž jsou složeny programy zpracovávající dlouhé vektory, při čemž se minimalizuje opakované použití dat, které s výhodou využívá registry a cache .
Jméno
Operace
B/oper.
FLOPS/oper.
COPY
a(i) = b(i)
16
0
SCALE
a(i) = q*b(i)
16
1
SUM
a(i) = b(i)+c(i)
24
1
TRIAD
a(i) = b(i)+q*c(i)
24
2
Tabulka 2
Benchmark STREAMVýsledky pro některé počítače jsou uvedeny v tabulce 3.
Počítač
Poč. proc.
COPY
SCALE
SUM
TRIAD
Rovnováha
Convex SPP1600
1
123.2
121.2
156.3
156.2
12.3
Cray J98
1
1417,0
1366,0
1259,0
1212,0
1,30
Cray T90
1
11341,5
10717,5
14783,6
13920,0
1,15
HP 9000/720
1
48,5
50,0
50,0
53,3
3,84
IBM RS6000-43P-260
1
941,8
985,1
1096,3
1102,8
5,80
Intel Pentium 133
1
84.4
77.1
85.7
85.9
12.4
SGI Origin 2000-1
1
296.0
300.0
315.0
317.0
9.8
Sun UE 6000
1
366,8
282,2
241,4
238,2
15,20
Cray J98
4
4699,0
4754,0
4386,0
4346,0
1,50
SGI Origin 2000-1
8
2300.0
2371.0
2384.0
2347.0
10.6
Tabulka 3
STREAM na některých počítačíchPorovnáním výsledků numerických benchmarků s výsledky benchmarku STREAM zjistíme, že firmy Cray a IBM kladly při vývoji počítačů vždy velký důraz na rovnováhu, zatímco DEC , HP a SGI se dlouho orientovaly na numerický výkon měřený benchmarkem SPEC fp92 . Teprve novější procesory MIPS 10000 ( SGI ) a PA–8000 ( HP ) byly navrženy s větším ohledem na rovnováhu (také proto asi měl MIPS 10000 při více než dvojnásobné frekvenci numerický výkon jen o 10 % vyšší než předchozí MIPS 8000 ).
© J. Nadrchal (28.4.2000) | ![]() ![]() |