Бенчмарки предоставляют метод сравнения производительности различных подсистем в различных архитектурах чипов/систем . Бенчмаркинг как часть непрерывной интеграции называется непрерывным бенчмаркингом. [2]
Цель
По мере развития компьютерной архитектуры становилось все сложнее сравнивать производительность различных компьютерных систем, просто глядя на их спецификации. Поэтому были разработаны тесты, которые позволяли сравнивать различные архитектуры. Например, процессоры Pentium 4 обычно работали на более высокой тактовой частоте, чем процессоры Athlon XP или PowerPC , что не обязательно означало большую вычислительную мощность; процессор с более низкой тактовой частотой мог работать так же хорошо или даже лучше, чем процессор, работающий на более высокой частоте. См. BogoMips и миф о мегагерцах .
Тесты производительности разработаны для имитации определенного типа рабочей нагрузки на компонент или систему. Синтетические тесты производительности делают это с помощью специально созданных программ, которые накладывают рабочую нагрузку на компонент. Тесты производительности приложений запускают реальные программы в системе. В то время как тесты производительности приложений обычно дают гораздо лучшее измерение реальной производительности в данной системе, синтетические тесты производительности полезны для тестирования отдельных компонентов, таких как жесткий диск или сетевое устройство.
Тесты производительности особенно важны в проектировании ЦП , предоставляя архитекторам процессоров возможность измерять и находить компромиссы в решениях микроархитектуры . Например, если тест производительности извлекает ключевые алгоритмы приложения, он будет содержать чувствительные к производительности аспекты этого приложения. Запуск этого гораздо меньшего фрагмента на точном по циклам симуляторе может дать подсказки о том, как улучшить производительность.
До 2000 года разработчики компьютеров и микропроцессоров использовали для этого SPEC , хотя тесты SPEC на базе Unix были довольно длинными и, следовательно, неудобными для использования в чистом виде.
Известно, что производители компьютеров настраивают свои системы так, чтобы они давали нереально высокую производительность в тестах производительности, которые не воспроизводятся в реальном использовании. Например, в 1980-х годах некоторые компиляторы могли обнаружить определенную математическую операцию, используемую в известном тесте производительности с плавающей точкой, и заменить ее более быстрой математически эквивалентной операцией. Однако такое преобразование редко было полезным вне теста производительности до середины 1990-х годов, когда архитектуры RISC и VLIW подчеркнули важность технологии компилятора в плане производительности. Теперь компании-производители компиляторов регулярно используют тесты производительности для улучшения не только собственных результатов тестов производительности, но и реальной производительности приложений.
Процессоры, имеющие много исполнительных блоков — например, суперскалярный процессор, процессор VLIW или реконфигурируемый вычислительный процессор — обычно имеют более медленную тактовую частоту, чем последовательный процессор с одним или двумя исполнительными блоками, если он построен из транзисторов, которые так же быстры. Тем не менее, процессоры с большим количеством исполнительных блоков часто выполняют реальные и эталонные задачи за меньшее время, чем предположительно более быстрый процессор с высокой тактовой частотой.
Учитывая большое количество доступных тестов, производитель обычно может найти по крайней мере один тест, который показывает, что его система превзойдет другую систему; другие системы можно продемонстрировать с помощью другого теста.
Производители обычно сообщают только о тех бенчмарках (или аспектах бенчмарков), которые показывают их продукцию в лучшем свете. Известно также, что они искажают значение бенчмарков, опять же, чтобы показать свою продукцию в лучшем свете. В совокупности эти практики называются bench-marketing.
В идеале бенчмарки должны заменять реальные приложения только в том случае, если приложение недоступно или слишком сложно или дорого для переноса на определенный процессор или компьютерную систему. Если производительность имеет решающее значение, единственным бенчмарком, который имеет значение, является набор приложений целевой среды.
Функциональность
Возможности программного обеспечения для бенчмаркинга могут включать запись/ экспорт хода производительности в файл электронной таблицы , визуализацию, такую как рисование линейных графиков или цветных плиток, и приостановку процесса для возможности возобновления без необходимости начинать заново. Программное обеспечение может иметь дополнительные функции, характерные для его цели, например, программное обеспечение для бенчмаркинга дисков может иметь возможность опционально начинать измерение скорости диска в указанном диапазоне диска, а не всего диска, измерять скорость чтения произвольного доступа и задержку , иметь функцию «быстрого сканирования», которая измеряет скорость с помощью выборок указанных интервалов и размеров, и позволяет указывать размер блока данных , то есть количество запрошенных байтов на запрос чтения. [3]
Вызовы
Бенчмаркинг — непростая задача, и часто она включает несколько итеративных раундов для получения предсказуемых и полезных выводов. Интерпретация данных бенчмаркинга также чрезвычайно сложна. Вот частичный список распространенных проблем:
Поставщики склонны настраивать свои продукты специально для стандартных отраслевых тестов. Norton SysInfo (SI) особенно легко настраивать, поскольку он в основном ориентирован на скорость множественных операций. Будьте предельно осторожны при интерпретации таких результатов.
Некоторые поставщики обвиняются в «мошенничестве» при проведении бенчмарков — выполнении действий, которые дают гораздо более высокие контрольные показатели, но ухудшают ситуацию с реальной вероятной рабочей нагрузкой. [4]
Многие тесты производительности полностью фокусируются на скорости вычислений , игнорируя другие важные характеристики компьютерной системы, такие как:
Качества обслуживания, помимо чистой производительности. Примерами неизмеренных качеств обслуживания являются безопасность, доступность, надежность, целостность выполнения, удобство обслуживания, масштабируемость (особенно способность быстро и без прерывания работы добавлять или перераспределять емкость) и т. д. Часто существуют реальные компромиссы между этими качествами обслуживания, и все они важны в бизнес-вычислениях. Спецификации эталонных тестов Transaction Processing Performance Council частично решают эти проблемы, указывая тесты свойств ACID , правила масштабируемости базы данных и требования к уровню обслуживания.
В целом, бенчмарки не измеряют общую стоимость владения . Спецификации бенчмарков Transaction Processing Performance Council частично решают эту проблему, указывая, что метрика цены/производительности должна быть представлена в дополнение к сырой метрике производительности, используя упрощенную формулу TCO . Однако затраты обязательно являются лишь частичными, и поставщики, как известно, устанавливают цену специально (и только) для бенчмарка, разрабатывая весьма специфическую конфигурацию «бенчмарка специального» с искусственно заниженной ценой. Даже небольшое отклонение от пакета бенчмарка приводит к гораздо более высокой цене в реальном мире.
Нагрузка на оборудование (пространство, питание и охлаждение). При большем потреблении энергии портативная система будет иметь более короткий срок службы батареи и будет чаще нуждаться в подзарядке. Сервер, который потребляет больше энергии и/или пространства, может не соответствовать существующим ограничениям ресурсов центра обработки данных, включая ограничения по охлаждению. Существуют реальные компромиссы, поскольку большинство полупроводников требуют больше энергии для более быстрого переключения. См. также производительность на ватт .
В некоторых встраиваемых системах, где память является существенной статьей расходов, более высокая плотность кода может существенно снизить затраты.
Бенчмарки поставщиков, как правило, игнорируют требования к вычислительной мощности разработки, тестирования и аварийного восстановления . Поставщики любят сообщать только о том, что может быть узко необходимо для производственной мощности, чтобы их первоначальная цена приобретения казалась как можно ниже.
Тесты испытывают трудности с адаптацией к широко распространенным серверам, особенно тем, которые обладают повышенной чувствительностью к топологиям сети. Появление сетевых вычислений , в частности, усложняет тестирование, поскольку некоторые рабочие нагрузки «дружественны к сетке», а другие — нет.
Пользователи могут иметь совершенно иное восприятие производительности, чем могут предложить бенчмарки. В частности, пользователи ценят предсказуемость — серверы, которые всегда соответствуют или превосходят соглашения об уровне обслуживания . Бенчмарки, как правило, подчеркивают средние баллы (с точки зрения ИТ), а не максимальное время отклика в худшем случае ( с точки зрения вычислений в реальном времени ) или низкие стандартные отклонения (с точки зрения пользователя).
Многие серверные архитектуры резко деградируют при высоких (почти 100%) уровнях использования — «падают с обрыва» — и бенчмарки должны (но часто не учитывают) этот фактор. Поставщики, в частности, имеют тенденцию публиковать серверные бенчмарки при непрерывном использовании около 80% — нереалистичная ситуация — и не документируют, что происходит с общей системой, когда спрос резко превышает этот уровень.
Многие бенчмарки фокусируются на одном приложении или даже на одном уровне приложений, исключая другие приложения. Большинство центров обработки данных в настоящее время широко внедряют виртуализацию по разным причинам, и бенчмаркинг все еще догоняет эту реальность, когда несколько приложений и уровней приложений одновременно работают на консолидированных серверах.
Существует немного (если вообще есть) высококачественных бенчмарков, которые помогают измерить производительность пакетных вычислений, особенно больших объемов параллельных пакетных и онлайн-вычислений. Пакетные вычисления, как правило, гораздо больше ориентированы на предсказуемость правильного завершения длительных задач до наступления сроков, таких как конец месяца или конец финансового года. Многие важные основные бизнес-процессы ориентированы на пакеты и, вероятно, всегда будут такими, например, выставление счетов.
Институты бенчмаркинга часто игнорируют или не следуют базовому научному методу. Это включает в себя, но не ограничивается: небольшой размер выборки, отсутствие контроля переменных и ограниченную повторяемость результатов. [5]
Принципы сравнительного анализа
Для бенчмарков существует семь важнейших характеристик. [6] Этими ключевыми свойствами являются:
Релевантность: контрольные показатели должны измерять относительно важные характеристики.
Репрезентативность: контрольные показатели эффективности должны быть широко приняты промышленностью и академическими кругами.
Справедливость: Все системы следует сравнивать справедливо.
Повторяемость: результаты сравнительного анализа можно проверить.
Экономическая эффективность: Сравнительные испытания экономичны.
Масштабируемость: Тесты производительности должны работать в системах с различным уровнем ресурсов — от низкого до высокого.
Прозрачность: контрольные показатели должны быть простыми для понимания.
Типы бенчмарков
Реальная программа
программное обеспечение для обработки текстов
инструментальное программное обеспечение САПР
прикладное программное обеспечение пользователя (например: MIS)
Основная процедура состоит из относительно небольшого и специфического фрагмента кода.
измерять производительность основных компонентов компьютера [7]
может использоваться для автоматического определения параметров оборудования компьютера, таких как количество регистров, размер кэша , задержка памяти и т. д.
Ядро
содержит ключевые коды
обычно абстрагируется от реальной программы
популярное ядро: цикл Ливермора
linpack benchmark (содержит базовую подпрограмму линейной алгебры, написанную на языке FORTRAN)
AIM Multiuser Benchmark – состоит из списка тестов, которые можно смешивать для создания «нагрузочной смеси», которая будет имитировать определенную функцию компьютера в любой ОС типа UNIX.
BRL-CAD — кроссплатформенный архитектурно-независимый пакет тестов, основанный на производительности многопоточной трассировки лучей; базируется на VAX-11/780; используется с 1984 года для оценки относительной производительности ЦП, различий компиляторов, уровней оптимизации, согласованности, различий архитектур и различий операционных систем.
Коллективные знания — настраиваемая кроссплатформенная структура для краудсорсинга сравнительного анализа и оптимизации пользовательских рабочих нагрузок (например, глубокого обучения ) на оборудовании, предоставленном волонтерами.
Coremark – Тест производительности встраиваемых вычислений
NBench – синтетический набор тестов, измеряющий производительность целочисленной арифметики, операций с памятью и арифметики с плавающей точкой
PAL – эталон для физических движков реального времени
PerfKitBenchmarker – набор тестов для измерения и сравнения облачных предложений.
Phoronix Test Suite – кроссплатформенный бенчмарк-комплект с открытым исходным кодом для Linux, OpenSolaris, FreeBSD, OSX и Windows. Он включает в себя ряд других бенчмарков, представленных на этой странице, для упрощения выполнения.
Инструмент оценки системы Windows , входящий в состав Windows Vista и более поздних версий, предоставляющий потребителям индекс для легкой оценки своих систем.
Рейтинг производительности — схема моделирования, используемая AMD и Cyrix для отражения относительной производительности, обычно по сравнению с конкурирующими продуктами.
Тестовый набор — набор тестовых случаев, призванных показать, что программа имеет определенный набор поведений.
Ссылки
^ Флеминг, Филип Дж.; Уоллес, Джон Дж. (1986-03-01). «Как не лгать со статистикой: правильный способ суммировать результаты бенчмарков». Сообщения ACM . 29 (3): 218–221. doi : 10.1145/5666.5673 . ISSN 0001-0782. S2CID 1047380.
^ Грэмбоу, Мартин; Леманн, Фабиан; Бермбах, Дэвид (2019). «Непрерывный бенчмаркинг: использование системного бенчмаркинга в конвейерах сборки». Международная конференция IEEE по облачной инженерии (IC2E) 2019 г. стр. 241–246. doi :10.1109/IC2E.2019.00039. ISBN978-1-7281-0218-4. Получено 2023-12-03 .
^ Программное обеспечение: HDDScan, GNOME Disks
^ Krazit, Tom (2003). "NVidia's Benchmark Tactics Reassessed". IDG News . Архивировано из оригинала 2011-06-06 . Получено 2009-08-08 .
^ Кастор, Кевин (2006). "Методология тестирования и сравнительного анализа оборудования". Архивировано из оригинала 2008-02-05 . Получено 2008-02-24 .
^ Дай, Вэй; Берлеант, Дэниел (12–14 декабря 2019 г.). «Сравнительный анализ современного оборудования и фреймворков глубокого обучения: обзор качественных показателей» (PDF) . Первая международная конференция IEEE 2019 года по когнитивному машинному интеллекту (CogMI) . Лос-Анджелес, Калифорния, США: IEEE. стр. 148–155. arXiv : 1907.03626 . doi : 10.1109/CogMI48466.2019.00029.
^ Элиар, Андреас; Лю, Дейк. «Тестирование сетевых процессоров» (PDF) .{{cite journal}}: Цитировать журнал требует |journal=( помощь )
Грей, Джим, ред. (1993). Справочник по эталонным системам для баз данных и транзакционных систем . Серия Morgan Kaufmann по системам управления данными (2-е изд.). Morgan Kaufmann Publishers, Inc. ISBN 1-55860-292-5.
Скальцо, Берт; Клайн, Кевин; Фернандес, Клаудия; Берлесон, Дональд К.; Олт, Майк (2007). Практические методы сравнительного анализа баз данных для Oracle и SQL Server . Rampant TechPress. ISBN 978-0-9776715-3-3.
Намбиар, Рагхунат; Поесс, Мейкель, ред. (2009). Оценка производительности и бенчмаркинг . Springer. ISBN 978-3-642-10423-7.
Внешние ссылки
Льюис, Байрон К.; Крюс, Альберт Э. (1985). «Эволюция бенчмаркинга как метода оценки производительности компьютеров» . MIS Quarterly . 9 (1): 7–16. doi :10.2307/249270. ISSN 0276-7783. JSTOR 249270.Даты: 1962-1976
На Викискладе есть медиафайлы по теме «Бенчмарки (вычисления)» .