Benchmark (výpočetní) - Benchmark (computing)

V oblasti výpočetní techniky je měřítkem akt spuštění počítačového programu , sady programů nebo jiných operací za účelem posouzení relativní výkonnosti objektu, obvykle spuštěním řady standardních testů a pokusů proti němu. Termín benchmark se také běžně používá pro účely propracovaně navržených programů benchmarkingu samotných.

Srovnávání je obvykle spojeno s hodnocením výkonnostních charakteristik počítačového hardwaru , například výkonu CPU s pohyblivou řádovou čárkou , ale existují okolnosti, kdy je tato metoda použitelná i pro software . Softwarové benchmarky jsou například spuštěny proti překladačům nebo systémům pro správu databází (DBMS).

Benchmarky poskytují způsob porovnávání výkonu různých subsystémů napříč různými architekturami čipů/systémů .

Účel

S postupující počítačovou architekturou bylo stále obtížnější porovnávat výkon různých počítačových systémů pouhým pohledem na jejich specifikace. Proto byly vyvinuty testy, které umožnily srovnání různých architektur. Například procesory Pentium 4 obecně pracovaly na vyšší hodinové frekvenci než procesory Athlon XP nebo PowerPC , což se nutně nepromítlo do většího výpočetního výkonu; procesor s pomalejší taktovací frekvencí může fungovat stejně dobře nebo dokonce lépe než procesor pracující na vyšší frekvenci. Viz BogoMips a megahertzový mýtus .

Srovnávací testy jsou navrženy tak, aby napodobovaly určitý typ pracovní zátěže na komponentě nebo systému. Syntetické benchmarky to dělají pomocí speciálně vytvořených programů, které kladou na komponentu pracovní zátěž. Benchmarky aplikací spouští v systému programy reálného světa. I když benchmarky aplikací obvykle poskytují mnohem lepší měřítko výkonu v reálném světě v daném systému, syntetické benchmarky jsou užitečné pro testování jednotlivých komponent, jako je pevný disk nebo síťové zařízení.

Srovnávací hodnoty jsou zvláště důležité v návrhu CPU , což dává architektům procesorů schopnost měřit a dělat kompromisy v mikroarchitekturálních rozhodnutích. Pokud například benchmark extrahuje klíčové algoritmy aplikace, bude obsahovat aspekty aplikace citlivé na výkon. Spuštění tohoto mnohem menšího úryvku na simulátoru přesného cyklu může poskytnout vodítka, jak zlepšit výkon.

Před rokem 2000 k tomu používali architekti počítačů a mikroprocesorů SPEC , přestože benchmarky založené na Unixu SPEC byly poměrně zdlouhavé, a proto se používaly neporušené.

Výrobci počítačů jsou známí tím, že konfigurují své systémy tak, aby poskytovaly nerealisticky vysoký výkon při srovnávacích testech, které se při skutečném používání nereplikují. Například v 80. letech minulého století mohli někteří kompilátoři detekovat konkrétní matematickou operaci použitou ve známém benchmarku s plovoucí desetinnou čárkou a nahradit operaci rychlejší matematicky ekvivalentní operací. Taková transformace však byla jen zřídka užitečná mimo benchmark až do poloviny devadesátých let, kdy architektury RISC a VLIW zdůrazňovaly důležitost technologie kompilátoru, protože souvisí s výkonem. Benchmarky nyní kompilační společnosti pravidelně používají ke zlepšení nejen svých vlastních srovnávacích skóre, ale skutečného výkonu aplikací.

CPU, které mají mnoho exekučních jednotek - jako je superskalární CPU, VLIW CPU nebo rekonfigurovatelný výpočetní CPU - mají obvykle pomalejší taktovací frekvence než sekvenční CPU s jednou nebo dvěma prováděcími jednotkami, pokud jsou postaveny z tranzistorů, které jsou stejně rychlé. Nicméně procesory s mnoha exekučními jednotkami často dokončí úkoly v reálném světě a srovnají je za kratší dobu než údajně rychlejší CPU s vysokou taktovací frekvencí.

Vzhledem k velkému počtu dostupných referenčních hodnot může výrobce obvykle najít alespoň jednu referenční hodnotu, která ukazuje, že jeho systém překoná jiný systém; u jiných systémů lze ukázat, že vynikají s jiným měřítkem.

Výrobci obvykle uvádějí pouze ty referenční hodnoty (nebo aspekty referenčních hodnot), které ukazují jejich výrobky v nejlepším světle. Bylo také známo, že nesprávně reprezentují význam referenčních hodnot, opět aby ukazovali své produkty v nejlepším možném světle. Celkově se těmto praktikám říká bench-marketing.

V ideálním případě by benchmarky měly nahrazovat skutečné aplikace pouze v případě, že je aplikace nedostupná nebo je příliš obtížné nebo nákladné přenášet ji na konkrétní procesor nebo počítačový systém. Pokud je výkon kritický, jediným důležitým měřítkem je sada aplikací cílového prostředí.

Výzvy

Srovnávání není snadné a často zahrnuje několik iteračních kol, aby se dospělo k předvídatelným a užitečným závěrům. Interpretace srovnávacích údajů je také mimořádně obtížná. Zde je částečný seznam běžných výzev:

  • Prodejci mají tendenci ladit své produkty specificky pro srovnávací standardy v oboru. Norton SysInfo (SI) je obzvláště snadné naladit, protože je ovlivněno hlavně rychlostí více operací. Při interpretaci takových výsledků buďte velmi opatrní.
  • Někteří prodejci byli obviněni z „podvádění“ benchmarků - dělají věci, které dávají mnohem vyšší srovnávací čísla, ale zhoršují skutečnou pravděpodobnou pracovní zátěž.
  • Mnoho benchmarků se zaměřuje výhradně na rychlost výpočetního výkonu , přičemž opomíjí další důležité funkce počítačového systému, jako například:
    • Kvalita služeb, kromě hrubého výkonu. Mezi příklady neměřených kvalit služby patří zabezpečení, dostupnost, spolehlivost, integrita provádění, obsluhovatelnost, škálovatelnost (zejména schopnost rychle a bez přerušení přidat nebo přerozdělit kapacitu) atd. Mezi těmito kvalitami služeb a mezi nimi často dochází ke skutečným kompromisům, a všechny jsou důležité pro obchodní výpočetní techniku. Specifikace Rady pro výkon zpracování transakcí Specifikace benchmarku částečně řeší tyto obavy zadáním testů vlastností ACID , pravidel škálovatelnosti databáze a požadavků na úroveň služeb.
    • Obecně platí, že referenční hodnoty neměří celkové náklady na vlastnictví . Specifikace Rady pro výkon transakčního zpracování transakcí částečně řeší tento problém tím, že stanoví, že kromě hrubé metriky výkonu musí být uvedena i metrika cena/výkon pomocí zjednodušeného vzorce TCO . Náklady jsou však nutně jen částečné a je známo, že prodejci stanovují ceny specificky (a pouze) za referenční hodnotu, když navrhují vysoce specifickou konfiguraci „benchmarkové speciální“ s uměle nízkou cenou. I malá odchylka od srovnávacího balíčku má za následek mnohem vyšší cenu v reálném světě.
    • Zatížení zařízení (prostor, energie a chlazení). Když se spotřebuje více energie, přenosný systém bude mít kratší životnost baterie a bude vyžadovat častější nabíjení. Server, který spotřebovává více energie a/nebo prostoru, se nemusí vejít do stávajících omezení zdrojů datového centra, včetně omezení chlazení. Existují skutečné kompromisy, protože většina polovodičů vyžaduje více energie pro rychlejší přepínání. Viz také výkon na watt .
    • V některých vestavěných systémech, kde paměť představuje značné náklady, může lepší hustota kódu výrazně snížit náklady.
  • Benchmarky dodavatelů obvykle ignorují požadavky na výpočetní kapacitu pro vývoj, testování a obnovu po havárii . Prodejci pouze rádi uvádějí, co může být úzce požadováno pro výrobní kapacitu, aby se jejich pořizovací cena zdála co nejnižší.
  • Srovnávací testy mají potíže s přizpůsobením široce distribuovaným serverům, zejména těm, které mají zvláštní citlivost na topologie sítě. Zejména grid computing komplikuje benchmarking, protože některé úlohy jsou „grid friendly“, zatímco jiné nikoli.
  • Uživatelé mohou mít velmi odlišné vnímání výkonu, než může naznačovat měřítko. Uživatelé oceňují zejména předvídatelnost - servery, které vždy splňují nebo překračují dohody o úrovni služeb . Srovnávací testy spíše zdůrazňují střední skóre (perspektiva IT) než maximální dobu odezvy nejhoršího případu ( perspektiva výpočtu v reálném čase ) nebo nízké standardní odchylky (perspektiva uživatele).
  • Mnoho serverových architektur dramaticky degraduje při vysokých (téměř 100%) úrovních využití - „spadne z útesu“ - a benchmarky by měly (ale často ne) tento faktor zohlednit. Zejména prodejci mají tendenci publikovat benchmarky serverů při nepřetržitém využití přibližně 80% - což je nerealistická situace - a nedokumentují, co se stane s celkovým systémem, když poptávka stoupne nad tuto úroveň.
  • Mnoho benchmarků se zaměřuje na jednu aplikaci, nebo dokonce na jednu aplikační vrstvu, s vyloučením jiných aplikací. Většina datových center nyní virtualizaci rozsáhle implementuje z různých důvodů a benchmarking stále odpovídá realitě, kde na konsolidovaných serverech běží souběžně více aplikací a aplikačních úrovní.
  • Existuje jen málo (pokud vůbec) vysoce kvalitních benchmarků, které pomáhají měřit výkon dávkových výpočtů, zejména souběžných dávkových a online výpočtů s velkým objemem. Dávkové výpočty bývají mnohem více zaměřeny na předvídatelnost správného dokončení dlouhodobých úkolů před konečnými termíny, jako je konec měsíce nebo konec fiskálního roku. Mnoho důležitých klíčových obchodních procesů je dávkově orientovaných a pravděpodobně vždy bude, například fakturace.
  • Srovnávací instituce často ignorují nebo nedodržují základní vědecké metody. To zahrnuje, ale není omezeno na: malou velikost vzorku, nedostatek variabilní kontroly a omezenou opakovatelnost výsledků.

Principy srovnávání

Pro benchmarky existuje sedm životně důležitých charakteristik. Tyto klíčové vlastnosti jsou:

  1. Relevance: Srovnávací hodnoty by měly měřit relativně zásadní funkce.
  2. Reprezentativnost: Metriky srovnávacího výkonu by měly být široce přijímány průmyslem a akademickou obcí.
  3. Vlastní kapitál: Všechny systémy by měly být spravedlivě porovnány.
  4. Opakovatelnost: Výsledky srovnávacích testů lze ověřit.
  5. Efektivita nákladů: Testy benchmarku jsou ekonomické.
  6. Škálovatelnost: Testy benchmarku by měly fungovat napříč systémy disponujícími řadou zdrojů od nízkých po vysoké.
  7. Transparentnost: Metriky benchmarku by měly být snadno srozumitelné.

Typy benchmarku

  1. Skutečný program
    • software pro zpracování textu
    • nástrojový software CAD
    • uživatelský aplikační software (tj .: MIS)
  2. Složka Benchmark / Microbenchmark
    • základní rutina se skládá z relativně malého a specifického kusu kódu.
    • měří výkon základních komponent počítače
    • lze použít k automatické detekci hardwarových parametrů počítače, jako je počet registrů, velikost mezipaměti , latence paměti atd.
  3. Jádro
    • obsahuje klíčové kódy
    • obvykle odebrány ze skutečného programu
    • populární jádro: smyčka Livermore
    • benchmark linpack (obsahuje základní podprogram lineární algebry napsaný v jazyce FORTRAN)
    • výsledky jsou uvedeny v Mflop/s.
  4. Syntetický benchmark
    • Postup programování syntetického benchmarku:
      • vzít statistiky všech typů operací z mnoha aplikačních programů
      • získejte podíl z každé operace
      • program pro zápis založený na výše uvedeném poměru
    • Typy syntetických referenčních hodnot jsou:
    • Jednalo se o první obecné průmyslové standardy počítačových standardů. Na moderních propojených počítačích nemusí nutně získat vysoké skóre.
  5. I/O benchmarky
  6. Srovnávací databáze
    • měřte propustnost a doby odezvy systémů správy databází (DBMS)
  7. Paralelní měřítka
    • používané na strojích s více jádry a/nebo procesory, nebo systémy sestávající z více strojů

Společná měřítka

Průmyslový standard (auditovaný a ověřitelný)

Open source benchmarky

  • AIM Multiuser Benchmark -složený ze seznamu testů, které lze smíchat a vytvořit tak „mix zatížení“, který by simuloval konkrétní funkci počítače na jakémkoli operačním systému typu UNIX.
  • Bonnie ++ - benchmark souborového systému a pevného disku
  • BRL-CAD -multiplatformní architektura-agnostická srovnávací sada založená na výkonu vícevláknového sledování paprsků; základní linie proti VAX-11/780; a používá se od roku 1984 k hodnocení relativního výkonu CPU, rozdílů kompilátoru, úrovní optimalizace, koherence, rozdílů v architektuře a rozdílů v operačním systému.
  • Kolektivní znalosti -přizpůsobitelný, multiplatformní rámec pro srovnávání zdrojů a optimalizaci pracovních zátěží uživatelů (například hluboké učení ) napříč hardwarem poskytovaným dobrovolníky
  • Coremark - Embedded výpočetní benchmark
  • DEISA Benchmark Suite - vědecký benchmark aplikací HPC
  • Dhrystone - celočíselný aritmetický výkon, často uváděný v DMIPS (Dhrystone miliony instrukcí za sekundu)
  • DiskSpd - příkazového řádku nástroj pro ukládání srovnávání, který generuje řadu požadavků vůči počítačových souborů , přepážek nebo úložných zařízení
  • Fhourstones - celočíselné měřítko
  • TIP - určen k měření celkového výkonu CPU a paměti
  • Iometer - nástroj pro měření a charakterizaci subsystému I/O pro jednoduché a klastrové systémy.
  • IOzone - benchmark systému souborů
  • Benchmarky LINPACK - tradičně se používají k měření FLOPS
  • Livermore smyčky
  • Paralelní benchmarky NAS
  • NBench -syntetická sada benchmarků měřící výkon celočíselné aritmetiky, paměťových operací a aritmetiky s pohyblivou řádovou čárkou
  • PAL - měřítko pro fyzikální motory v reálném čase
  • PerfKitBenchmarker - Sada benchmarků pro měření a porovnávání cloudových nabídek.
  • Phoronix Test Suite -open-source cross-platform benchmarking suite pro Linux, OpenSolaris, FreeBSD, OSX a Windows. Obsahuje řadu dalších benchmarků zahrnutých na této stránce pro zjednodušení provádění.
  • POV-Ray -3D vykreslování
  • Tak (funkce) - jednoduché měřítko používané k testování výkonu rekurze
  • Benchmark TATP - Benchmark zpracování transakcí telekomunikačních aplikací
  • TPoX - benchmark zpracování transakcí XML pro databáze XML
  • VUP (VAX jednotka výkonu) - také nazývaná VAX MIPS
  • Whetstone -aritmetický výkon s pohyblivou řádovou čárkou, často uváděný v milionech instrukcí Whetstone za sekundu (MWIPS)

Benchmarky Microsoft Windows

Ostatní

  • AnTuTu -běžně používaný na telefonech a zařízeních založených na ARM.
  • Geekbench -benchmark pro různé platformy pro Windows, Linux, macOS, iOS a Android.
  • iCOMP - výkon srovnávacího mikroprocesoru Intel, vydaný společností Intel
  • Khornerstone
  • Hodnocení výkonu - schéma modelování používané AMD a Cyrix k vyjádření relativního výkonu obvykle ve srovnání s konkurenčními produkty.
  • SunSpider - test rychlosti prohlížeče
  • VMmark - sada benchmarků virtualizace.

Viz také

Reference

  1. ^ Fleming, Philip J .; Wallace, John J. (01.03.1986). „Jak nelhat se statistikami: správný způsob, jak shrnout výsledky benchmarku“ . Komunikace ACM . 29 (3): 218–221. doi : 10,1145/5666,5673 . ISSN  0001-0782 . S2CID  1047380 . Citováno 2017-06-09 .
  2. ^ Krazit, Tom (2003). „Taktika benchmarku NVidie přehodnocena“ . Novinky IDG . Archivováno od originálu dne 2011-06-06 . Citováno 2009-08-08 .
  3. ^ Castor, Kevin (2006). „Metodika testování hardwaru a srovnávání“ . Archivovány od originálu na 2008-02-05 . Citováno 2008-02-24 .
  4. ^ Dai, Wei; Berleant, Daniel (12. – 14. Prosince 2019). „Benchmarking současného hardwaru a rámců hlubokého učení: průzkum kvalitativních metrik“ (PDF) . 2019 První mezinárodní konference IEEE o inteligenci kognitivních strojů (CogMI) . Los Angeles, CA, USA: IEEE. s. 148–155. arXiv : 1907.03626 . doi : 10.1109/CogMI48466.2019.00029 .
  5. ^ Ehliar, Andreas; Liu, Dake. „Srovnávací procesory sítě“ (PDF) . Citační deník vyžaduje |journal=( nápověda )
  6. ^ Rada pro výkon zpracování transakcí (únor 1998). „Historie a přehled TPC“ . TPC . Rada pro výkon zpracování transakcí . Citováno 2018-07-02 .

Další čtení