Бенчмарк (рачунарство)

С Википедије, слободне енциклопедије

У рачунарству, бенчмарк је чин извршавања програма, групе програма, или других операција, ради процене релативне перформансе објекта, излажући га одређеном броју стандардних тестова и задатака. Термин 'бенчмарк' се такође углавном користи у сврхе самих разрађено-дизајнираних самих бенчмарк програма.

Бенчмарковање је често повезано са проценом перформансних карактеристика рачунарског хардвера, на пример, перформанси процесора при операцијама са покретним зарезом, али има случајева када је техника применљива и на софтвер. Софтверским бенчмарковима се, на пример, тестирају компајлери или системи база података.

Бенчмарк такође омогућава поређење перформанси различитих подсистема на различитим чиповима или системским архитектурама.

Пакети тестова су тип система за процену коректности софтвера.

Сврха[уреди | уреди извор]

Како је архитектура рачунара напредовала, постало је теже упоређивати перформансе различитих рачунарских система једноставно на основу њихове спецификације. Услед тога, развијени су тестови који су омогућили упоређивање различитих архитектура. На примeр, Pentium 4 процесори генерално раде на вишем радном такту од Athlon XP процесора, што не значи да они имају више рачунарске моћи. Процесор са споријим радним тактом може имати подједнаку перформансу као процесор са вишом радном фреквенцијом. Погледајте BogoMips и мит мегахерца.

Бенчмаркови су дизајнирани да симулирају специфичан тип оптерећења на компоненту или систем. Синтетички бенчмаркови ово постижу специфично дизајнираним програмима који оптерећују компоненту. Бенчмаркови апликација извршавају стварне апликације на систему. Док бенчмаркови апликација дају много бољи увид у реалне перформансе на датом систему, синтетички бенчмаркови су корисни за тестирање индивидуалних компоненти, као што су тврди диск, графичка картица или мрежни уређај.

Бенчмаркови су посебно важни при дизајну процесора, јер дају архитектама могућност да процењују и праве компромисе при дизајну микроархитектуре. На пример, ако бенчмарк издвоји кључне алгоритме апликације, он ће садржати перформансно-осетиљиве аспекте те апликације. Извршавање овог мањег дела апликације на циклус-прецизном симулатору може помоћи у циљу побољшања перформансе.

До 2000, архитекте рачунара и процесора су користиле SPEC у ову сврху, али су SPEC-ови Unix-базирани бенчмаркови били прилично дугачки и стога незграпни за коришћење.

Произвођачи рачунара су познати по томе да подешавају своје системе тако да дају знатно више перформансе не бенчмарковима него што је могуће у практичној примени. На пример, током 1980их неки компајлери су могли да детектују специфичну математичку операцију коришћену у добро познатим тестовима операција са покретним зарезом и исту замене са бржом математички еквивалентном операцијом. Међутим, таква трансформација је ретко била корисна ван бенчмарк тестова све до половине 1990их, када RISC и VLIW архитектуре наглашавају важност компајлерске технологије у вези са перформансом. Новији случајеви оваквих индустријских превара су откривени код произвођача Андроид телефона као што су Самсунг и HTC, који су подешани да детектују извршавање бенчмарк апликација и у том случају направе повећања перформанси жртвовањем уштеде енергије, каква се иначе не раде код осталих апликација. Бенчмаркови се данас редовно користе од стране компајлерских компанија ради побољшања не само својих бенчмарк резултата, већ и стварних перформанси апликације.

Процесори који имају пуно извршних јединица — као што су суперскаларни процесори, VLIW процсори, или реконфигурабилни процесори — типично имају нижи радни такт од секвенцијалних процесора са једном или две извршне јединице када се праве од транзистора који су подједнако брзи. Упркос томе, процесори са више извршних јединица често изводе практичне проблеме и бенчмарк тестове много брже од наводно бржих процесора са вишим радним тактом.

С обзиром на велики број бенчмарк тестова, произвођач углавном може да нађе бар један који ће дати предност његовом систему у односу на неки други; други системи пак могу бити значајно бржи под неким другим бенчмарк тестом.

Произвођачи често износе резултате само оних бенчмаркова (или њихових аспеката) који њихов производ приказују у најбољем светлу. Такође су познати по томе што погрешно представљају важност бенчмаркова, опет ради приказивања свог производа у најбољем светлу. Ова пракса се популарно зове бенч-маркетинг.

У идеалном случају бенчмаркови би требало да замењују стварне апликације само ако је апликација недоступна, или превише компликована и скупа за портовање на специфичан процесор или рачунарски систем. Уколико су перформансе од критичне важности, једини бенчмарк који је битан је сама апликација која ће радити на том систему.

Изазови[уреди | уреди извор]

Бенчмарковање није лако и често захтева неколико узастопних извршавања истог теста да би се дошло до реалних и корисних закључака. Интерпретација резултата бенчмарк тестова је такође натпросечно тешпка. Ово је парцијална листа честих изазова:

  • Произвођачи се труде да оптимизују своје производе за индустријски-стандардне бенчмаркове. Посебно је лака оптимизација за Norton SysInfo (SI), с обзиром да се углавном базира на брзини вишеструких операција. Будите јако опрезни при интерпретацији тих резултата.
  • Неки произвођачи су оптужени за превару у бенчмарковима — коришћењем техника које дају доста боље бенчмарк резултате, али чине ствари још горим код стварних задатака.[1]
  • Доста бенчмаркова се фокусира у потпуности на рачунарске перформансе, запостављајући друге важне особине рачунарског система као што су:
    • Квалитет услуге, за разлику од сирове перформансе. Примери неизмерених квалитета услуге укључују сигурност, доступност, поузданост, интегритет извршења, сервисабилност, скалабилност (посебно способност да се брзо и неометано дода или реалоцира капацитет), и тако даље. Често има правих компромиса међу овим квалитетима услуге, и сви су важни у пословном рачунарству. Transaction Processing Performance Council Benchmark спецификације делимично регулишу ове проблеме дефинисањем ACID својствених тестова, правила скалирања база података, и захтева нивоа сервиса.
    • Углавном, бенчмаркови не мере укупну цену власништва. Transaction Processing Performance Council Benchmark спецификације делимично регулишу овај проблем дефинисањем да однос цена/перформансе мора бити издат поред мере сирових перформанси, коришћењем поједностављене TCO формуле. Међутим, цене су по потреби само делимичне, и произвођачи су познати по томе да конфигуришу јефтине системе специфично (и само за) бенчмаркове. Чак и најситније одскакање од бенчмарк конфигурације резултује у много вишој цени у практичној употреби.
    • Трошкови постројења (простор, електрична енергија, и хлађење). Када се користи више енергије, преносиви систем ће имати краћи животни век батерије и захтевати чешће пуњење. Сервер који користи више енергије и/или простора можда неће пасовати унутар постојећих ресурсних ограничења центра података, укључујући ограничења хлађења. Има стварних компромиса с обзиром да већина полупроводника захтева више енергије при већем радном такту.
    • Код неких уграђених система, где меморија држи значајну цену, већа густина кода може значајно смањити цену.
  • Бенчмаркови произвођача теже да игноришу захтеве за развој, тестирање, и рачунарски капацитет за повраћај из отказивања уређаја. Произвођачи саопштавају само оно што може бити уско неопходно за производни капацитет да би цена иницијалног усвајања изгледала што нижа.
  • Бенчмаркови имају проблема да се прилагоде на широко дистрибуиране сервере, посебно на оне са великом остељивошћу на мрежне топологије. Појава Грид рачунарства, посебно компликује бенчмарковање с обзиром да су нека оптерећења "грид оптимизована", док друга нису.
  • Корисници могу имати другачију перцепцију перформанси од онога на шта бенчмаркови указују. Посебно, корисници цене предвидљивост — сервери који увек заводољавају или превазилазе уговоре о нивоу сервира. Бенчмаркови теже да наглашавају просечне резултате, пре него максимална времена одзива у најгорем случају, или ниско стандардна одступања.
  • Пуно серверских архитектура се значајно деградирају при високим (скоро 100%) нивоима оптерећења — "пад са литице" — и бенчмаркови би требало (али углавном не) да то узму у обзир. Произвођачи теже да издају серверске бенчмаркове при континуалним оптерећењем од 80% — што није практична ситуација — и не бележе шта се дешава целокупном систему када оптерећење скочи преко тог нивоа.
  • Пуно бенчмаркова се фокусира на једну апликацију, или чак једну врсту апликације, до изузимања осталих апликација. Већина центара података данас екстензивно имплементира вируелизацију из више разлога, и бенчмарковање идаље покушава да сустигне такву праксу где се вишеструке апликације и врсте апликација конкурентно извршавају на консолидованим серверима.
  • Има неколико (ако их има уопште) висококвалитетних бенчмаркова који могу мерити перформансу серијског рачунарства, посебно вишеструког конкурентног серијског и мрежног рачунарства. Серијско рачунарство тежи да буде више фокусирано на предвидљивост исправног завршетка дугачких задатака пре рока, као што су крај месеца или фискалне године. Пуно кључних пословних процеса су серијски (пакетно) оријентисани и вероватно ће увек и бити, као што је наплата.
  • Бенчмарк институције често одбацују или не прате основне научне методе. Ово укључује, али није ограничено на: малу величину узорка, недостатак променљиве контроле, и ограничену поновност резултата.[2]

Типови бенчмаркова[уреди | уреди извор]

  1. Прави програми
    • софтвер за обраду текста
    • CAD програми
    • кориснички софтвер (i.e.: MIS)
  2. Микробенчмарк
    • Дизајнирани да мере перформансе јако малог и специфичног дела кода
  3. Кернел
    • садржи кључне кодове
    • углавном издвојен од главног програма
    • популарни кернел: Livermore петља
    • linpack бенчмарк (садржи основну линеарну алгебарску подрутину писану у FORTRAN језику)
    • резултати су приказани у броју MFLOPS
  4. Компонентни бенчмарк/ микро-бенчмарк
    • програми дизајнирани да мере перформансе основних рачунарских компоненти[3]
    • аутоматска детекција параметара рачунарског хардвера као што су број регистара, величина кеша, меморијско кашњење
  5. Синтетички бенчмарк
    • Процедура програмирања синтетичког бенчмарка:
      • сакупити статистику свих типова операција из пуно апликативног софтвера
      • узети пропорцију сваке операције
      • написати програм на основу горње пропорције
    • Типови синтетичких бенчмарка су:
      • Whetstone
      • Dhrystone
    • То су били први општенаменски индустријски бенчмаркови. Они неће нужно добити висок резултат на модерним рачунарима са проточном обрадом.
  6. Улазно/Излазни бенчмаркови
  7. Бенчмаркови база података: за мерење пропусности и брзине одзива система за управљање базама (DBMS)
  8. Паралелни бенчмаркови: користе се на машинама са више језгара, процесорима или системима који се садрже од више машина

Најчешћи бенчмаркови[уреди | уреди извор]

Индустријски стандард (проверљиви)[уреди | уреди извор]

  • Business Applications Performance Corporation (BAPCo)
  • Embedded Microprocessor Benchmark Consortium (EEMBC)
  • Standard Performance Evaluation Corporation (SPEC), посебно њихов SPECint и SPECfp
  • Transaction Processing Performance Council (TPC)
  • Coremark: Стандард за уграђене рачунарске системе

Бенчмаркови отвореног кода[уреди | уреди извор]

  • DEISA Benchmark Suite: бенчмарк за научне апликације високих перформанси
  • Dhrystone: аритметичке перформансе са целим бројевима
  • Fhourstones: бенчмарк са целим бројевима
  • HINT: мери укупну процесорску и меморијску перформансу
  • Iometer: бенчмарк за улазно/излазни подсистем једноструких и кластерованих система
  • Linpack, традиоционално коришћен за мерење FLOPS
  • LAPACK
  • Livermore loops
  • NAS parallel benchmarks
  • NBench: синтетички бенчмарк пакет за мерење аритметике са целим бројевима, меморијске операције, и аритметику са покретним зарезом
  • PAL: бенчмарк за машине са физиком у реалном времену
  • Phoronix Test Suite: вишеплатформски бенчмарк отвореног кода за Линукс, OpenSolaris, FreeBSD, OSX и Microsoft Windows. Садржи неколико других бенчмаркова наведених на овој страни ради једноставнијег извршења
  • POV-Ray: 3D рендер
  • Tak (function): једноставан бенчмарк за мерење перформанси рекурзије
  • TATP Benchmark: Telecommunication Application Transaction Processing бенчмарк
  • TPoX: бенчмарк за мерење обраде XML трансакције за XML базе података
  • Whetstone: аритметика са покретним зарезом
  • Geek Benchmark: мерење аритметике целих бројева, бројева са покретним зарезом и меморијске перформансе
  • Rodinia: бенчмарк за паралелне архитектуре базиран на акцелераторима
  • Parsec: бенчмарк за системе са паралелно дељеном меморијом
  • Splash2: бенчмарк за паралелне системе
  • STREAM: бенчмарк за мерење пропусне моћи меморије система
  • LLCbench: пакет за нису архитектонску карактеризацију, за мерење процесорске и меморијске перформансе система

Microsoft Windows бенчмаркови[уреди | уреди извор]

  • BAPCo: MobileMark, SYSmark, WebMark
  • Futuremark: 3DMark, PCMark
  • Whetstone
  • Worldbench (превазиђен)
  • PiFast
  • SuperPrime
  • Super PI
  • Windows System Assessment Tool, уграђен са Microsoft Windows Vista и новијим Windows оперативним системима, обезбеђује индекс перформанси свих главних компоненти рачунара

Други[уреди | уреди извор]

  • BRL-CAD
  • Khornerstone
  • iCOMP, Intel comparative microprocessor performance, издат од стране Интела
  • Performance Rating, шема моделовања коришћена од стране AMD-а и Cyrix-а да прикаже релативне перформансе углавном поређене са конкурентним производима
  • VMmark, виртуелизациони бенчмарк[4]
  • Sunspider, тест брзине интернет претраживача (Browser)
  • BreakingPoint Systems, моделовање и симулација саобраћаја мрежних апликација ради бенчмарка сервера и мрежне опреме
  • MSC Benchmark 1.0[5], бенчмарк за тестирање масивно паралелних рачунарских система под истовременим високим оптерећењем мреже, процесора и меморије


Референце[уреди | уреди извор]

  1. ^ Krazit, Tom (2003). „NVidia's Benchmark Tactics Reassessed”. IDG News. Архивирано из оригинала 06. 06. 2011. г. Приступљено 10. 12. 2013. 
  2. ^ Castor, Kevin (2006). „Hardware Testing and Benchmarking Methodology”. Архивирано из оригинала 05. 02. 2008. г. Приступљено 24. 2. 2008. 
  3. ^ Ehliar, Andreas; Liu, Dake. „Benchmarking network processors” (PDF). 
  4. ^ „VMmark Rules 1.1.1” (PDF). VMWare. 2008. 
  5. ^ Glaesemann, K. R.; van Dam, H. J. J.; Carr, J. F. (2011). „MSC Benchmark 1.0”. Pacific Northwest National Lab. Архивирано из оригинала 21. 07. 2011. г. Приступљено 10. 12. 2013. 

Литература[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]