Provokující otázka? Samoz²ejm╪. Snaha b∞t lepτí, nebo alespoσ mít n╪co lepτího neº ti druzí, je lidem z²ejm╪ zakódována v genech. Pokud p²ijmeme v∞zvu a na tuto hru p²istoupíme, m╪li bychom se také ptát po n╪jak∞ch pravidlech. Jin∞mi slovy ²eƒeno, musíme otázku z nadpisu doplnit a ptát se, jak se pozná dobr∞ poƒítaƒ pro to, co práv╪ pot²ebujeme. Tím se ale vτe komplikuje...
Jak se pozná dobr∞ poƒítaƒ?
Není moºné jednoduτe ²íci, ºe n╪kter∞ poƒítaƒ je lepτí neºli jin∞. Podobn╪ jako n╪které auto lépe zabírá do kopce a jiné je vynikající na rovin╪, je n╪kter∞ poƒítaƒ lepτí pro zpracování velk∞ch objemà dat a jin∞ màºe b∞t zase vynikající poƒtá². Podívejme se, zda je moºné vτe n╪jak kvantifikovat a tím alespoσ ƒásteƒn╪, zejména z dàvodu srovnávání, objektivizovat.
Θlevou p²i tomto hledání nám budiº fakt, ºe se vτechny poƒítaƒe skládají z vesm╪s podobn∞ch dílà, a ºe jejich srovnávání je tedy podstatn╪ jednoduττí. Màºeme srovnávat v∞kon procesoru, dobu p²ístupu procesoru do pam╪ti, vybavovací dobu pevného disku aj. Jak spolu jednotlivé komponenty ladí, to uº tak snadno posuzovatelné není. Sebelepτí procesor pracující na sb╪rnici, na které se tlaƒí p╪t dalτích sebelepτích procesorà, funguje spíτ jako úst²ední topení neº jako v∞poƒetní prvek.
Komponenty mající zásadní vliv na v∞kon celého systému jsou zejména procesor, vyrovnávací pam╪ti procesoru, druh hlavní pam╪ti a zpàsob jejího p²ipojení k procesoru a dalτím ƒástem poƒítaƒe, dále pak v∞kon vstupn╪-v∞stupních systémà a v neposlední ²ad╪ pouºit∞ program. Zvláτt╪ ten má zcela zásadní v∞znam pro urƒení rychlosti systému, nebo£ nevhodn╪ napsan∞ program màºe nap²íklad tém╪² eliminovat v∞hodu vyrovnávacích pam╪tí.
Teoretické hodnoty aneb Data pro reklamní kampaσ
Teoretické hodnoty v∞konu (v∞konem se rozumí poƒet operací, které je poƒítaƒ ƒi procesor schopen provést za sekundu) se udávají zejména pro procesory, a to celkem oprávn╪n╪. Procesor je z²ejm╪ nejdàleºit╪jτím prvkem, kter∞ podstatn∞m zpàsobem urƒuje v∞kon celého systému.
Teoretick∞ v∞kon (peak performance) procesoru se urƒí tak, ºe hodnota hodinové frekvence (nap². pro 500MHz Pentium 500 milionà) se vynásobí poƒtem instrukcí, které je procesor schopen provád╪t v jednom hodinovém cyklu. Tak se jednoduτe dojde k závratn∞m ƒíslàm, nap²íklad k miliard╪ operací za sekundu (1 GFLOPS). To, ºe je procesor schopen vykonat více operací v jednom cyklu, je dáno tzv. z²et╪zením n╪kter∞ch specifick∞ch posloupností instrukcí.
Chceme-li znát teoretick∞ v∞kon celého systému, je nutné toto ƒíslo vynásobit poƒtem procesorà v poƒítaƒi. V∞sledná ƒísla jsou vτak skuteƒn╪ pouze teoretická. µpiƒkov∞ch v∞sledkà totiº poƒítaƒ màºe dosáhnout jen v naprosto v∞jimeƒn∞ch p²ípadech. Skuteƒn∞ v∞kon, a to jak procesoru, tak celého poƒítaƒe, se obyƒejn╪ pohybuje n╪kde na 30 aº 50 % t╪chto hodnot. V p²ípad╪ paralelních poƒítaƒà tomu b∞vá jeτt╪ mén╪, asi 10 %.
Vyrovnávací pam╪ti
Zcela zásadním problémem je v souƒasné dob╪ vybavovací doba pam╪tí, která je neúm╪rn╪ dlouhá ve srovnání s rychlostí procesoru. Zatímco procesor je schopen pracovat velice rychle, pam╪£ není schopna tak rychle dodávat instrukce a p²edevτím data. Existují sice rychlé pam╪ti, ale ty jsou dosti drahé, a tak se tato situace ²eτí kompromisem. Mezi procesor a pam╪£ se dá rychlá, tzv. vyrovnávací pam╪£ (cache memory). Její funkce je v podstat╪ jednoduchá. Kdyº se ƒtou data z pam╪ti, s nejv╪tτí pravd╪podobností se brzy budou ƒíst data, která leºí t╪sn╪ vedle. P²i ƒtení se tedy p²enese do vyrovnávací pam╪ti celá stránka, nejen poºadované místo, ale jeτt╪ jeho bezprost²ední okolí. P²i dalτím ƒtení se pak v╪tτinou nemusí sahat do pomalé hlavní pam╪ti a data jsou k dispozici velice rychle. Navíc údaj, kter∞ se do vyrovnávací pam╪ti jednou uloºil, bude s velkou pravd╪podobností za okamºik pouºit znovu, a tak se tam n╪jakou chvilku drºí.
Problém je, jsou-li data roztrouτena po pam╪ti tak, ºe se v∞hod vyrovnávací pam╪ti nevyuºije. Dojde k tzv. zanesení pam╪ti (cache trashing) a k celkovému sníºení v∞konu. Podobn∞ jev zpàsobuje p²enáτení velk∞ch souvisl∞ch objemà dat mezi pam╪tí a procesorem. Stránky z vyrovnávací pam╪ti se pak navzájem vystrkují a tím se sniºuje efektivita této techniky. Obecn╪ vτak vyrovnávací pam╪ti velmi v∞razn╪ zvyτují v∞kon systému.
Je jasné, ºe reáln∞ v∞kon procesoru závisí zejména na struktu²e úlohy, která je ²eτena, a na tom, jak dob²e je vyuºito vyrovnávacích pam╪tí. Reáln∞ v∞kon je samoz²ejm╪ menτí, v nejlepτím p²ípad╪ rovn∞ teoretickému v∞konu procesoru.
Klasické benchmarky
V reáln∞ch úlohách z²ídka dochází k tomu, ºe jsou procesoru pravideln╪ a ne-
p²etrºit╪ dodávány instrukce, které màºe zpracovávat tak, aby dosahoval teoretického v∞konu. Obyƒejn╪ dochází k n╪jak∞m prodlevám a celkov∞ v∞kon je menτí. Z toho také plyne otázka, jak reáln∞ v∞kon zm╪²it.
Nejjednoduττí metodou je spustit na poƒítaƒi n╪jakou typickou úlohu a zm╪²it dobu jejího b╪hu. Typická úloha se vτak hledá obtíºn╪, a tak se pro tyto úƒely vytvá²ejí "um╪lé typické úlohy" - benchmarky. Benchmark je tedy syntetická úloha, která reprezentuje typické úlohy z reality. Získá se obyƒejn╪ tak, ºe se statisticky zm╪²í, v jakém po²adí a jak ƒasto které instrukce p²icházejí do procesoru, a vytvo²í se um╪lá úloha, která tuto statistiku dodrºuje.
U procesoru se uvád╪jí dva dàleºité údaje. Poƒet operací s cel∞mi ƒísly za sekundu, jednotkou je IPS - poƒet instrukcí za sekundu. Nejƒast╪ji se setkáme s veliƒinou MIPS, která reprezentuje milion instrukcí za sekundu. Druh∞m dàleºit∞m údajem je poƒet operací s reáln∞mi ƒísly za sekundu. Zde je jednotkou FLOPS.
Pro oba tyto údaje jsou vyvinuty ràzné úlohy. Pro MIPS se jiº dlouhou dobu pouºívá celkem dob²e zaveden∞ test, kter∞ se jmenuje DHRYSTONE podle anglického m╪sta, kde byl vyvinut. V souƒasné dob╪ je k dispozici na internetu verze 2.1 a je voln╪ ke staºení ve zdrojovém kódu. A zde je nutné upozornit na jednu závaºnou vlastnost vτech benchmarkà.
Kaºd∞ p²ekladaƒ, kter∞ k p²ekladu programu pouºijeme, má k dispozici tzv. optimalizace. P²ekladaƒ se podívá na n╪které konstrukce a pokusí se je p²ipravit procesoru tak, aby je provedl pokud moºno co nejrychleji. Optimalizace màºeme podle pot²eby zapnout ƒi vypnout, p²ípadn╪ nastavit jejich urƒitou úroveσ. Proto se p²i m╪²ení v∞konu obvykle udávají údaje dva - poƒty operací pro neoptimalizovanou a optimalizovanou verzi. P²ekladaƒe vτak b∞vají vybaveny stále sofistikovan╪jτími konstrukcemi, a tak nap²íklad pro b╪h konkrétního programu jsem s ràzn∞mi stupni optimalizace dosáhl dokonce dvojnásobného v∞konu. Z tohoto i z mnoha dalτích dàvodà se benchmark DHRYSTONE pouºívá stále mén╪.
V souvislosti s optimalizací je vhodné uvést jeτt╪ jeden fakt. Pro n╪které úlohy se uvádí speciální benchmark, kter∞ se jmenuje TPP (toward peak performance). Není to nic mimo²ádného, ve skuteƒnosti jde o klasick∞ benchmark, kter∞ je optimalizován ƒlov╪kem. Po automatickém p²ekladu si k n╪mu sedl n╪jak∞ programátor, podíval se do p²eloºeného kódu a optimalizoval jej jeτt╪ více. V∞kon dosaºen∞ pomocí TPP b∞vá aº dvakrát vyττí neºli v∞kon dosaºen∞ nejlepτí automatickou optimalizací.
Pro získání údaje o v∞konu v operacích s reáln∞mi ƒísly (FLOPS) se jiº od roku 1979 pouºívá benchmark LINPACK, kter∞ reprezentuje klasické úlohy z lineární algebry. Tento program je rovn╪º voln╪ ke staºení z internetu a pro jeho optimalizace platí zhruba totéº, co bylo ²eƒeno o programu DHRYSTONE.
SPEC
Protoºe u benchmarkà nejde o nic jiného neº o peníze, bylo silnou snahou vτe n╪jak objektivizovat. Ràzné firmy dosahovaly u sv∞ch poƒítaƒà závratn∞ch v∞sledkà a leckteré jednotky, zejména grafické karty, byly dokonce konstruovány tak, aby co nejlépe vyhov╪ly znám∞m testàm. Z t╪chto dàvodà vzniklo konsorcium zvané SPEC - Standard Performance Evaluation Corporation (www.spec.org), které sdruºuje snad vτechny dàleºité firmy, jeº n╪jak souvisejí s poƒítaƒi. SPEC má t²i dàleºité skupiny:
? SPEC High Performance Group (SPEChpg), která se zab∞vá p²edevτím m╪²ením v∞konu superpoƒítaƒà, se zvláτtním dàrazem na paralelní poƒítaƒe, které se hodnotí obzvláτ£ obtíºn╪;
? SPEC Graphics Performance Characterization Group (SPECgpc) pro testování v∞konu v poƒítaƒové grafice;
? SPEC Open Systems Group (SPECosg), v podstat╪ pàvodní organizace - dv╪ v∞τe uvedené jsou nov╪ vzniklé, lépe ²eƒeno odτt╪pené.
SPECosg
Je nejdàleºit╪jτí skupinou SPEC a její jednotlivé podskupiny poskytují následující testy:
? SPECcpu, skupina testà, která obsahuje testy SPECint95 a SPECfp95 pro m╪²ení MIPS a FLOPS. Jde o nejlepτí známé a nejlépe zavedené testy, p²ipravuje se balík SPEC2000.
? SPECjvm, test pro m╪²ení kvality JAVA Virtual Machine.
? SPECsdm pro testování kvality implementace p²íkazà Unixu.
Vτechny testy jsou k dispozici za peníze. Ceny nejsou nijak závratné, SPECjvm98 je za 100, SPECsfs97 za 900, SPECweb99 za 800, SPECcpu95 za 600, SPECsdm za 1450 a SPEChpc96 za 1200 USD. Pokud vás zajímají v∞sledky, jsou k dispozici na stránkách www.spec.org a jsou pràb╪ºn╪ aktualizovány. Jednou za ƒtvrt roku vychází p²ehledn∞ ƒasopis, kde jsou veτkeré v∞sledky uvedeny. Internetová verze vτak je daleko lepτí, uº kvàli moºnosti automatického vyhledávání. SPEC zásadn╪ nedává doporuƒení ani nijak v∞sledky nekomentuje. ¼ísla vτak obyƒejn╪ hovo²í sama za sebe.
SPECgpc
Je pom╪rn╪ nová, ale o to aktivn╪jτí skupina ve sdruºení SPEC. Zab∞vá se m╪²ením rychlosti poƒítaƒové grafiky a d╪lí se na t²i skupiny.
SPECmedia je zcela nová skupina, která se zam╪²uje p²edevτím na kvalitu implementace MPEG animací, zejména pro jejich p²ítomnost v DVD. Dalτí aktivity sm╪²ují k m╪²ení kvality trojrozm╪rného zvuku a grafiky orientované na hry a zábavu. Oƒekává se, ºe první testy budou k dispozici n╪kdy v roce 2000.
SPECapc se zab∞vá aplikacemi pro trojrozm╪rné modelovaní a zde jsou k dispozici dva testy - jeden pro SolidWorks98 a druh∞ pro Pro/ENGINEER verze 20. Oba testy jsou za peníze a v∞sledky jednotliv∞ch poƒítaƒov∞ch sestav jsou k dispozici zadarmo na jiº zmín╪né webové stránce www.spec.org.
SPECopc pro m╪²ení rychlosti implementace OpenGL, standardu pro rychlou trojrozm╪rnou grafiku. Testy jsou k dispozici dva: SPECviewperf a SPECglperf.
SPECviewperf je orientován na pom╪rn╪ vysokou úroveσ OpenGL a koresponduje s komerƒními produkty, jejichº nejƒast╪ji pouºívané grafické operace m╪²í. Nap²íklad test AWadvs odpovídá Alias|Wavefrontu, ProCDRS programu Pro/Designer aj. P²íklady v∞sledkà jsou na uveden∞ch obrázcích, více je na Chip CD 12/98 a aktuální v∞sledky jsou na www.spec.org/gpc/opc.static/viewresults.htm.
Druh∞, SPECglperf, m╪²í kvalitu implementace OpenGL na podstatn╪ niºτí úrovni, v podstat╪ na úrovni hardwaru. Zahrnuje t²ináct m╪²ení, nap²íklad rychlost osv╪tlování, texturování, rychlost generování vypln╪n∞ch trojúhelníkà aj.
Záv╪r
Zdá se, ºe situace na poli b╪ºn∞ch poƒítaƒà, tedy t╪ch, které jsou nasazovány v aplikacích od domácností aº po velké podniky, je celkem p²ehledná. Existuje konsorcium, které vyvíjí dàkladné a kvalitní benchmarky, poƒítaƒe jsou aktivn╪ testovány a je jen na uºivatelích, aby se p²ed investicí do poƒítaƒe podívali na stránky SPEC. Testy jsou celkem objektivní a jejich v∞sledky, vzhledem k tomu, kdo vτechno je v konsorciu zastoupen, jsou z²ejm╪ nezmanipulované. Konkurenƒní firmy se totiº navzájem hlídají samy. Bohuºel s v∞sledky se v reklamních materiálech setkáme jen tehdy, je-li p²ísluτn∞ poƒítaƒ v n╪jakém testu na prvním míst╪. Moºná práv╪ proto nejsou testy moc známé.
V∞hodou t╪chto testà je, ºe nemusíme za nic platit. Vτe platí ti, kdo si nechávají své poƒítaƒe zm╪²it. Stále vτak platí pravidlo, ºe pokud máme n╪jakou nestandardní úlohu, je dobré, pokud to lze, provést vlastní m╪²ení. Pro b╪ºné záleºitosti, jako je WWW server, koup╪ poƒítaƒe, na kterém se bude pracovat v programu Pro/ENGINEER, ƒi koup╪ fileserveru, staƒí pouze otev²ít p²ísluτné webové stránky a podívat se, jak se v╪ci mají.