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