SPEC a ostatn¡ 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. ? SPECsfs pro mØýen¡ kvality syst‚m… soubor…. ? SPECweb, pomØrnØ novì test, kterì porovn v  kvalitu WWW server…. 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¡. Bedýich Beneç