Кіріспе
Компьютерлердің салыстырмалы өнімділігін олардың барлығында бірдей бағдарламаны іске қосу арқылы салыстыру. Компьютерлік жүйеде, бенчмарк – объектінің салыстырмалы өнімділігін бағалау мақсатымен компьютерлік бағдарламаны, бағдарламалар жиынтығын немесе басқа операцияларды орындау амалы, әдетте оған бірнеше стандартты тесттер мен тәжірибелер жүргізу арқылы. "Бенчмарк" термині сондай-ақ, мұқият жоспарланған бенчмаркинг бағдарламаларының өзіне де қолданылады. Бенчмаркинг көбінесе компьютерлік аппараттық құралдардың өнімділік сипаттамаларын бағалаумен байланысты, мысалы, процессордың (CPU) қозғалатын нүктелік операциялардың өнімділігі, бірақ бұл техника бағдарламалық жасақтамаға да қолданылуы мүмкін. Бағдарламалық құралдардың бенчмарктары, мысалы, компиляторлар немесе деректер базасын басқару жүйелерімен (ДББЖ) салыстырылады. Бенчмарктер түрлі чиптер мен жүйелер архитектураларындағы әртүрлі жүйелердің өнімділігін салыстыруға мүмкіндік береді. Ұдайы интеграцияның бөлігі ретіндегі үздіксіз бенчмаркинг – Ұдайы бенчмаркинг деп аталады.
In computing, a benchmark is the act of running a computer program, a set of programs, or other operations, in order to assess the relative performance of an object, normally by running a number of standard tests and trials against it. The term benchmark is also commonly utilized for the purposes of elaborately designed benchmarking programs themselves. Benchmarking is usually associated with assessing performance characteristics of computer hardware, for example, the floating point operation performance of a CPU, but there are circumstances when the technique is also applicable to software. Software benchmarks are, for example, run against compilers or database management systems (DBMS). Benchmarks provide a method of comparing the performance of various subsystems across different chip/system architectures. Benchmarking as a part of continuous integration is called Continuous Benchmarking.
Мақсаты
Компьютерлік архитектура дамыған сайын, әртүрлі компьютерлік жүйелердің өнімділігін олардың сипаттамаларына қарап салыстыру қиынға соқты. Сондықтан, әртүрлі архитектураларды салыстыруға мүмкіндік беретін тесттер жасалды. Мысалы, Pentium 4 процессорлары әдетте Athlon XP немесе PowerPC процессорларына қарағанда жоғары тактық жиілікпен жұмыс істеді, бірақ бұл міндетті түрде есептеу қуатын арттырмады; тактық жиілігі төмен процессор жоғары жиілікте жұмыс істейтін процессордан жақсы, тіпті одан да жақсы жұмыс істей алады. BogoMips және мегагерц мифі туралы қараңыз. Бенчмарктар компонент немесе жүйедегі жұмыс жүктемесінің белгілі бір түрін имитациялауға арналған. Синтетикалық бенчмарктар мұны компонентке жүктемені салатын арнайы жасалған бағдарламалар арқылы жасайды. Қолданбалық бенчмарктар жүйеде нақты бағдарламаларды іске қосады. Қолданбалық бенчмарктар әдетте нақты жүйедегі нақты өнімділікті жақсырақ өлшейді, ал синтетикалық бенчмарктар жеке компоненттерді, мысалы, қатты дискіні немесе желілік құрылғыны сынау үшін пайдалы. Бенчмарктар CPU дизайнында ерекше маңызды, процессор архитекторларына микроархитектуралық шешімдерді өлшеу және компромисс жасау мүмкіндігін береді. Мысалы, егер бенчмарк бір қолданбаның негізгі алгоритмдерін қамтыса, онда ол осы қолданбаның өнімділікке байланысты маңызды аспектілерін қамтиды. Осы кішкентай фрагментті циклдік дәлдікті симуляторда іске қосу өнімділікті қалай жақсартуға болатынын көрсетеді. 2000 жылға дейін компьютерлер мен микропроцессорлар архитекторлары осы мақсатта SPEC-ті пайдаланды, бірақ SPEC-тің Unix-ке негізделген бенчмарктары өте ұзақ болғандықтан, оларды толыққанды пайдалану қиын болды. Компьютер өндірушілері өздерінің жүйелерін нақты қолданыста көрінбейтін бенчмарк тесттерінде шынайы жоғары өнімділік көрсету үшін конфигурациялайтыны белгілі. Мысалы, 1980 жылдары кейбір компиляторлар белгілі бір жылжымалы нүктелік бенчмаркте қолданылатын белгілі бір математикалық операцияны анықтап, осы операцияны математикалық түрде эквивалентті, бірақ жылдамырақ операциямен алмастыра алды. Алайда, мұндай трансформация 1990 жылдардың ортасына дейін, RISC және VLIW архитектуралары компилятор технологиясының өнімділікке қатысты маңыздылығын көрсеткенге дейін, эталоннан тыс жерде сирек пайдалы болды. Қазіргі кезде компилятор компаниялары өздерінің бенчмарк көрсеткіштерін және нақты қолданбалардың өнімділігін жақсарту үшін бенчмарктарды тұрақты түрде пайдаланады. Көптеген орындау бірліктері бар CPU — мысалы, суперскалярлық CPU, VLIW CPU немесе қайта конфигурацияланатын есептеу CPU — транзисторлардан жасалған кезде, бір немесе екі орындау бірлігі бар ретті CPU-ға қарағанда әдетте төмен тактық жиілікке ие болады. Дегенмен, көптеген орындау бірліктері бар CPU-лар нақты және бенчмарк тапсырмаларын, көбінесе жоғары тактық жиілікті CPU-дан жылдамырақ аяқтайды. Қолда бар көптеген бенчмарктарды ескере отырып, өндіруші әдетте кем дегенде бір бенчмаркты таба алады, оның жүйесі басқа жүйеден оқсып өтетінін көрсетеді; ал басқа жүйелер басқа бенчмаркпен жақсырақ екенін көрсетуге болады. Өндірушілер әдетте тек өз өнімдерін ең жақсы жағдайда көрсететін бенчмарктарды (немесе бенчмарктардың аспектілерін) ғана жариялайды. Олар өз өнімдерін мүмкіндігінше жақсы көрсету үшін бенчмарктардың маңыздылығын бұрмалап көрсетуге де бейім. Мұндай практикалардың барлығы бірге «бенчмаркетинг» деп аталады. Идеалды жағдайда, бенчмарктар нақты қолданбаларды тек егер қолданба қол жетімді болмаса немесе белгілі бір процессорға немесе компьютерлік жүйеге көшіру өте қиын немесе қымбат болса ғана алмастыруы керек. Егер өнімділік маңызды болса, мақсатты ортаның қолданбалар жиынтығы ғана маңызды бенчмарк болып табылады.
Функционалдылығы
Бенчмаркинг бағдарламалық жасақтамасының мүмкіндіктеріне өнімділіктің барысын кесте файлына жазу/экспорттау, сызықтық графиктер немесе түсті кодталған тіктөртбұрыштар салу сияқты көріністендіру, сондай-ақ процесті тоқтатып, қайтадан бастамай жалғастыру мүмкіндігі кіруі мүмкін. Бағдарламалық жасақтама мақсатына қарай қосымша мүмкіндіктерге ие болуы мүмкін, мысалы, дискіні тестілеу бағдарламалық жасақтамасы дискінің толық көлемі емес, белгілі бір бөлігінде дискінің жылдамдығын өлшеуге, кездейсоқ оқу жылдамдығы мен жауабын өлшеуге, белгілі интервалдар мен көлемдердегі үлгілер арқылы жылдамдықты тексеруге арналған "жылдам тексеру" функциясына және әрбір оқу сұранысына қажет байттар санын анықтауға мүмкіндік беруі мүмкін.
Салыстырмалы бағалау қағидалары
Бағалау көрсеткіштері үшін жеті маңызды қасиет бар. Бұл негізгі сипаттамалар:
Маңыздылығы: Бағалау көрсеткіштері маңызды ерекшеліктерді өлшеуі керек. Өкілдік: Бағалау көрсеткіштерінің нәтижелері индустрия және академиялық ортада кеңінен қабылдануы тиіс. Әділдік: Барлық жүйелерді әділ түрде салыстыру керек. Қайталанатындық: Бағалау нәтижелерін растауға болады. Қосымша тиімділік: Бағалау сынақтары экономикалық тұрғыдан тиімді болуы керек. Өлшемділік: Бағалау сынақтары әртүрлі ресурстарға ие жүйелерде – төменнен жоғарыға дейін жұмыс істеуі керек. Түсініктілік: Бағалау көрсеткіштерін түсіну оңай болуы керек.
Relevance: Benchmarks should measure relatively vital features. Representativeness: Benchmark performance metrics should be broadly accepted by industry and academia. Equity: All systems should be fairly compared. Repeatability: Benchmark results can be verified. Cost effectiveness: Benchmark tests are economical. Scalability: Benchmark tests should work across systems possessing a range of resources from low to high. Transparency: Benchmark metrics should be easy to understand.