stringtranslate.com

Бенчмарк (вычисления)

Графическая демонстрация, работающая в качестве эталонного теста движка OGRE

В вычислительной технике бенчмарк это процесс запуска компьютерной программы , набора программ или других операций с целью оценки относительной производительности объекта, обычно путем проведения ряда стандартных тестов и испытаний. [1]

Термин «бенчмарк» также широко используется для обозначения тщательно разработанных программ бенчмаркинга.

Бенчмаркинг обычно ассоциируется с оценкой характеристик производительности компьютерного оборудования , например, производительности операций с плавающей точкой процессора , но существуют обстоятельства, когда этот метод применим и к программному обеспечению . Тесты производительности программного обеспечения, например, проводятся с компиляторами или системами управления базами данных (СУБД).

Бенчмарки предоставляют метод сравнения производительности различных подсистем в различных архитектурах чипов/систем . Бенчмаркинг как часть непрерывной интеграции называется непрерывным бенчмаркингом. [2]

Цель

По мере развития компьютерной архитектуры становилось все сложнее сравнивать производительность различных компьютерных систем, просто глядя на их спецификации. Поэтому были разработаны тесты, которые позволяли сравнивать различные архитектуры. Например, процессоры Pentium 4 обычно работали на более высокой тактовой частоте, чем процессоры Athlon XP или PowerPC , что не обязательно означало большую вычислительную мощность; процессор с более низкой тактовой частотой мог работать так же хорошо или даже лучше, чем процессор, работающий на более высокой частоте. См. BogoMips и миф о мегагерцах .

Тесты производительности разработаны для имитации определенного типа рабочей нагрузки на компонент или систему. Синтетические тесты производительности делают это с помощью специально созданных программ, которые накладывают рабочую нагрузку на компонент. Тесты производительности приложений запускают реальные программы в системе. В то время как тесты производительности приложений обычно дают гораздо лучшее измерение реальной производительности в данной системе, синтетические тесты производительности полезны для тестирования отдельных компонентов, таких как жесткий диск или сетевое устройство.

Тесты производительности особенно важны в проектировании ЦП , предоставляя архитекторам процессоров возможность измерять и находить компромиссы в решениях микроархитектуры . Например, если тест производительности извлекает ключевые алгоритмы приложения, он будет содержать чувствительные к производительности аспекты этого приложения. Запуск этого гораздо меньшего фрагмента на точном по циклам симуляторе может дать подсказки о том, как улучшить производительность.

До 2000 года разработчики компьютеров и микропроцессоров использовали для этого SPEC , хотя тесты SPEC на базе Unix были довольно длинными и, следовательно, неудобными для использования в чистом виде.

Известно, что производители компьютеров настраивают свои системы так, чтобы они давали нереально высокую производительность в тестах производительности, которые не воспроизводятся в реальном использовании. Например, в 1980-х годах некоторые компиляторы могли обнаружить определенную математическую операцию, используемую в известном тесте производительности с плавающей точкой, и заменить ее более быстрой математически эквивалентной операцией. Однако такое преобразование редко было полезным вне теста производительности до середины 1990-х годов, когда архитектуры RISC и VLIW подчеркнули важность технологии компилятора в плане производительности. Теперь компании-производители компиляторов регулярно используют тесты производительности для улучшения не только собственных результатов тестов производительности, но и реальной производительности приложений.

Процессоры, имеющие много исполнительных блоков — например, суперскалярный процессор, процессор VLIW или реконфигурируемый вычислительный процессор — обычно имеют более медленную тактовую частоту, чем последовательный процессор с одним или двумя исполнительными блоками, если он построен из транзисторов, которые так же быстры. Тем не менее, процессоры с большим количеством исполнительных блоков часто выполняют реальные и эталонные задачи за меньшее время, чем предположительно более быстрый процессор с высокой тактовой частотой.

Учитывая большое количество доступных тестов, производитель обычно может найти по крайней мере один тест, который показывает, что его система превзойдет другую систему; другие системы можно продемонстрировать с помощью другого теста.

Производители обычно сообщают только о тех бенчмарках (или аспектах бенчмарков), которые показывают их продукцию в лучшем свете. Известно также, что они искажают значение бенчмарков, опять же, чтобы показать свою продукцию в лучшем свете. В совокупности эти практики называются bench-marketing.

В идеале бенчмарки должны заменять реальные приложения только в том случае, если приложение недоступно или слишком сложно или дорого для переноса на определенный процессор или компьютерную систему. Если производительность имеет решающее значение, единственным бенчмарком, который имеет значение, является набор приложений целевой среды.

Функциональность

Возможности программного обеспечения для бенчмаркинга могут включать запись/ экспорт хода производительности в файл электронной таблицы , визуализацию, такую ​​как рисование линейных графиков или цветных плиток, и приостановку процесса для возможности возобновления без необходимости начинать заново. Программное обеспечение может иметь дополнительные функции, характерные для его цели, например, программное обеспечение для бенчмаркинга дисков может иметь возможность опционально начинать измерение скорости диска в указанном диапазоне диска, а не всего диска, измерять скорость чтения произвольного доступа и задержку , иметь функцию «быстрого сканирования», которая измеряет скорость с помощью выборок указанных интервалов и размеров, и позволяет указывать размер блока данных , то есть количество запрошенных байтов на запрос чтения. [3]

Вызовы

Бенчмаркинг — непростая задача, и часто она включает несколько итеративных раундов для получения предсказуемых и полезных выводов. Интерпретация данных бенчмаркинга также чрезвычайно сложна. Вот частичный список распространенных проблем:

Принципы сравнительного анализа

Для бенчмарков существует семь важнейших характеристик. [6] Этими ключевыми свойствами являются:

  1. Релевантность: контрольные показатели должны измерять относительно важные характеристики.
  2. Репрезентативность: контрольные показатели эффективности должны быть широко приняты промышленностью и академическими кругами.
  3. Справедливость: Все системы следует сравнивать справедливо.
  4. Повторяемость: результаты сравнительного анализа можно проверить.
  5. Экономическая эффективность: Сравнительные испытания экономичны.
  6. Масштабируемость: Тесты производительности должны работать в системах с различным уровнем ресурсов — от низкого до высокого.
  7. Прозрачность: контрольные показатели должны быть простыми для понимания.

Типы бенчмарков

  1. Реальная программа
    • программное обеспечение для обработки текстов
    • инструментальное программное обеспечение САПР
    • прикладное программное обеспечение пользователя (например: MIS)
    • Видеоигры
    • Компиляторы, собирающие большой проект, например, браузер Chromium или ядро ​​Linux
  2. Компонентный бенчмарк / Микробенчмарк
    • Основная процедура состоит из относительно небольшого и специфического фрагмента кода.
    • измерять производительность основных компонентов компьютера [7]
    • может использоваться для автоматического определения параметров оборудования компьютера, таких как количество регистров, размер кэша , задержка памяти и т. д.
  3. Ядро
    • содержит ключевые коды
    • обычно абстрагируется от реальной программы
    • популярное ядро: цикл Ливермора
    • linpack benchmark (содержит базовую подпрограмму линейной алгебры, написанную на языке FORTRAN)
    • Результаты представлены в Мфлоп/с.
  4. Синтетический бенчмарк
    • Процедура программирования синтетического бенчмарка:
      • брать статистику всех типов операций из многих прикладных программ
      • получить долю каждой операции
      • написать программу на основе пропорции выше
    • Типы синтетических бенчмарков:
    • Это были первые общеотраслевые стандартные компьютерные тесты. Они не обязательно получают высокие баллы на современных конвейерных компьютерах.
  5. Тесты ввода-вывода
  6. Тесты баз данных
    • измерить пропускную способность и время отклика систем управления базами данных (СУБД)
  7. Параллельные тесты
    • используется на машинах с несколькими ядрами и/или процессорами или в системах, состоящих из нескольких машин

Общие контрольные показатели

Отраслевой стандарт (проверенный и проверяемый)

Тесты с открытым исходным кодом

Тесты Microsoft Windows

Другие

Смотрите также

Ссылки

  1. ^ Флеминг, Филип Дж.; Уоллес, Джон Дж. (1986-03-01). «Как не лгать со статистикой: правильный способ суммировать результаты бенчмарков». Сообщения ACM . 29 (3): 218–221. doi : 10.1145/5666.5673 . ISSN  0001-0782. S2CID  1047380.
  2. ^ Грэмбоу, Мартин; Леманн, Фабиан; Бермбах, Дэвид (2019). «Непрерывный бенчмаркинг: использование системного бенчмаркинга в конвейерах сборки». Международная конференция IEEE по облачной инженерии (IC2E) 2019 г. стр. 241–246. doi :10.1109/IC2E.2019.00039. ISBN 978-1-7281-0218-4. Получено 2023-12-03 .
  3. ^ Программное обеспечение: HDDScan, GNOME Disks
  4. ^ Krazit, Tom (2003). "NVidia's Benchmark Tactics Reassessed". IDG News . Архивировано из оригинала 2011-06-06 . Получено 2009-08-08 .
  5. ^ Кастор, Кевин (2006). "Методология тестирования и сравнительного анализа оборудования". Архивировано из оригинала 2008-02-05 . Получено 2008-02-24 .
  6. ^ Дай, Вэй; Берлеант, Дэниел (12–14 декабря 2019 г.). «Сравнительный анализ современного оборудования и фреймворков глубокого обучения: обзор качественных показателей» (PDF) . Первая международная конференция IEEE 2019 года по когнитивному машинному интеллекту (CogMI) . Лос-Анджелес, Калифорния, США: IEEE. стр. 148–155. arXiv : 1907.03626 . doi : 10.1109/CogMI48466.2019.00029.
  7. ^ Элиар, Андреас; Лю, Дейк. «Тестирование сетевых процессоров» (PDF) . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  8. ^ Transaction Processing Performance Council (февраль 1998 г.). "История и обзор TPC". TPC . Transaction Processing Performance Council . Получено 2018-07-02 .

Дальнейшее чтение

Внешние ссылки