Тест (вычисления)
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В вычислительной технике тест — это запуск компьютерной программы , набора программ или других операций с целью оценки относительной производительности объекта, обычно путем выполнения ряда стандартных тестов и испытаний. [1]
Термин «бенчмаркинг» также часто используется для целей тщательно разработанных программ сравнительного анализа.
Бенчмаркинг обычно связан с оценкой характеристик производительности компьютерного оборудования , например, при операциях с плавающей запятой производительности процессора , но бывают обстоятельства, когда этот метод применим и к программному обеспечению . Например, тесты программного обеспечения проводятся на основе компиляторов или систем управления базами данных (СУБД).
Тесты производительности предоставляют метод сравнения производительности различных подсистем на разных архитектурах чипов/систем . Бенчмаркинг как часть непрерывной интеграции называется непрерывным бенчмаркингом. [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] Этими ключевыми свойствами являются:
- Актуальность: тесты должны измерять относительно важные функции.
- Репрезентативность: эталонные показатели производительности должны быть широко приняты в промышленности и научных кругах.
- Справедливость: Все системы должны справедливо сравниваться.
- Повторяемость: результаты тестов можно проверить.
- Экономическая эффективность: эталонные тесты экономичны.
- Масштабируемость: эталонные тесты должны работать на системах, обладающих диапазоном ресурсов от низкого до высокого.
- Прозрачность: контрольные показатели должны быть простыми для понимания.
Типы эталонов
[ редактировать ]- Реальная программа
- программное обеспечение для обработки текста
- инструментальное программное обеспечение САПР
- прикладное программное обеспечение пользователя (например: MIS)
- Видеоигры
- Компиляторы, создающие большой проект, например браузер Chromium или ядро Linux.
- Бенчмарк компонентов/микробенчмарк
- Основная процедура состоит из относительно небольшого и специфического фрагмента кода.
- измерить производительность основных компонентов компьютера [7]
- может использоваться для автоматического определения параметров оборудования компьютера, таких как количество регистров, кэша размер , задержка памяти и т. д.
- Ядро
- содержит ключевые коды
- обычно абстрагируется от реальной программы
- популярное ядро: Ливерморский цикл
- Тест linpack (содержит базовую функцию линейной алгебры, написанную на языке FORTRAN)
- результаты представлены в Мфлоп/с.
- Синтетический эталон
- Порядок программирования синтетического теста:
- брать статистику всех типов операций из многих прикладных программ
- получить долю каждой операции
- написать программу на основе приведенной выше пропорции
- Типы синтетических эталонов:
- Это были первые стандартные компьютерные тесты общего назначения. Они не обязательно получают высокие баллы на современных конвейерных компьютерах.
- Порядок программирования синтетического теста:
- Тесты ввода-вывода
- Тесты базы данных
- измерять пропускную способность и время отклика систем управления базами данных (СУБД)
- Параллельные тесты
- используется на машинах с несколькими ядрами и/или процессорами или в системах, состоящих из нескольких машин
Общие критерии
[ редактировать ]Отраслевой стандарт (проверенный и поддающийся проверке)
[ редактировать ]- Корпорация производительности бизнес-приложений (BAPCo)
- Консорциум по тестированию встроенных микропроцессоров (EEMBC)
- Standard Performance Evaluation Corporation (SPEC), в частности их SPECint и SPECfp.
- Совет по производительности обработки транзакций (TPC): тесты СУБД [8]
Тесты с открытым исходным кодом
[ редактировать ]- Многопользовательский тест AIM - состоит из списка тестов, которые можно смешивать для создания «сочетания нагрузки», имитирующего определенную функцию компьютера в любой ОС типа UNIX.
- Bonnie++ – тест файловой системы и жесткого диска
- BRL-CAD – кроссплатформенный набор тестов, не зависящий от архитектуры, основанный на производительности многопоточной трассировки лучей; базовый уровень по сравнению с VAX-11/780; и используется с 1984 года для оценки относительной производительности ЦП, различий компиляторов, уровней оптимизации, согласованности, различий в архитектуре и различий в операционных системах.
- Коллективные знания — настраиваемая кросс-платформенная среда для краудсорсингового сравнительного анализа и оптимизации пользовательских рабочих нагрузок (например, глубокого обучения ) на оборудовании, предоставленном волонтерами.
- Coremark – тест встраиваемых вычислений
- DEISA Benchmark Suite – тест для научных приложений HPC
- Dhrystone - производительность целочисленных арифметических операций, часто выражаемая в DMIPS (миллионы инструкций Dhrystone в секунду).
- DiskSpd — инструмент командной строки для сравнительного анализа хранилища, который генерирует различные запросы к компьютерным файлам , разделам или устройствам хранения.
- Fhourstones – целочисленный тест
- ПОДСКАЗКА – предназначена для измерения общей производительности процессора и памяти.
- Iometer – инструмент измерения и определения характеристик подсистем ввода-вывода для одиночных и кластерных систем.
- IOzone – тест файловой системы
- Тесты LINPACK – традиционно используются для измерения FLOPS
- Ливерморские петли
- Параллельные тесты NAS
- NBench - набор синтетических тестов, измеряющий производительность целочисленной арифметики, операций с памятью и арифметики с плавающей запятой.
- PAL – эталон физических движков реального времени
- PerfKitBenchmarker — набор тестов для измерения и сравнения облачных предложений.
- Phoronix Test Suite – пакет кроссплатформенного тестирования с открытым исходным кодом для Linux, OpenSolaris, FreeBSD, OSX и Windows. Он включает в себя ряд других тестов, представленных на этой странице для упрощения выполнения.
- POV-Ray – 3D render
- Tak (функция) — простой тест, используемый для проверки производительности рекурсии.
- Тест TATP – тест обработки транзакций телекоммуникационных приложений
- TPoX — эталон обработки транзакций XML для баз данных XML.
- VUP (единица производительности VAX) – также называется VAX MIPS.
- Whetstone - производительность арифметических вычислений с плавающей запятой, часто измеряемая в миллионах инструкций Whetstone в секунду (MWIPS).
Тесты Microsoft Windows
[ редактировать ]- BAPCo : MobileMark, SYSmark, WebMark.
- КристаллДискМарк
- Лаборатории страховщиков (UL) : 3DMark , PCMark
- Небесный эталон
- ПиФаст
- Тест суперпозиции
- Супер ПИ
- СуперПрайм
- Долина Бенчмарк
- точильный камень
- Средство оценки системы Windows , включенное в Windows Vista и более поздние версии, предоставляющее индекс, позволяющий потребителям легко оценить свои системы.
- Worldbench (снято с производства)
Другие
[ редактировать ]- AnTuTu – обычно используется на телефонах и устройствах на базе ARM.
- Byte Sieve — изначально проверял производительность языка, но также широко использовался в качестве машинного теста.
- Creative Computing Benchmark – сравнивает язык программирования BASIC на различных платформах. Представлен в 1983 году.
- Geekbench – кроссплатформенный тест для Windows, Linux, macOS, iOS и Android.
- iCOMP - сравнительная производительность микропроцессоров Intel, опубликованная Intel.
- Хорнерстоун
- Рейтинг производительности — схема моделирования, используемая AMD и Cyrix для отражения относительной производительности, обычно сравниваемой с конкурирующими продуктами.
- Тесты Rugg/Feldman — одни из первых тестов микрокомпьютеров, выпущенные в 1977 году.
- SunSpider – тест скорости браузера
- VMmark – набор тестов виртуализации.
См. также
[ редактировать ]- Бенчмаркинг (с точки зрения бизнеса)
- Показатель заслуг
- Тесты сжатия без потерь
- Монитор счетчика производительности
- Набор тестов - набор тестовых примеров, призванных показать, что программа имеет определенный набор поведения.
Ссылки
[ редактировать ]- ^ Флеминг, Филип Дж.; Уоллес, Джон Дж. (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 . ISBN 978-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 . дои : 10.1109/CogMI48466.2019.00029 .
- ^ Элиар, Андреас; Лю, Дэйк. «Сравнение сетевых процессоров» (PDF) .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Совет по производительности обработки транзакций (февраль 1998 г.). «История и обзор ТПК» . ТПК . Совет по производительности обработки транзакций . Проверено 2 июля 2018 г.
Дальнейшее чтение
[ редактировать ]- Грей, Джим, изд. (1993). Справочник по эталонным тестам для баз данных и транзакционных систем . Серия Моргана Кауфмана по системам управления данными (2-е изд.). Morgan Kaufmann Publishers, Inc. ISBN 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 гг.