5. Výkon počítače


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   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   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:

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  STREAM

Vý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čích

Porovná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 10000SGI ) 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)