Тест (вычисления) - Benchmark (computing)

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

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

Тесты предоставляют метод сравнения производительности различных подсистем на разных архитектурах микросхем / систем .

Цель

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

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

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

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

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

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

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

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

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

Вызовы

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

  • Продавцы склонны настраивать свои продукты специально для отраслевых стандартов. Norton SysInfo (SI) особенно легко настроить, поскольку он в основном ориентирован на скорость выполнения нескольких операций. Будьте предельно осторожны при интерпретации таких результатов.
  • Некоторых поставщиков обвиняют в «мошенничестве» при тестировании - выполнении действий, которые дают гораздо более высокие результаты тестов, но ухудшают реальную вероятную рабочую нагрузку.
  • Многие тесты полностью сосредоточены на скорости вычислений , игнорируя другие важные особенности компьютерной системы, такие как:
    • Качество обслуживания, помимо безупречной производительности. Примеры неизмеримых качеств обслуживания включают безопасность, доступность, надежность, целостность выполнения, удобство обслуживания, масштабируемость (особенно способность быстро и без прерывания работы добавлять или перераспределять емкость) и т. Д. Часто существуют реальные компромиссы между этими качествами обслуживания и между ними. и все они важны в бизнес-вычислениях. Спецификации тестов производительности обработки транзакций Совета частично решают эти проблемы, определяя тесты свойств ACID , правила масштабируемости базы данных и требования к уровню обслуживания.
    • Как правило, тесты не измеряют совокупную стоимость владения . Спецификации тестов производительности обработки транзакций Совета частично решают эту проблему, указывая, что метрика цена / производительность должна сообщаться в дополнение к исходной метрике производительности с использованием упрощенной формулы совокупной стоимости владения . Однако затраты обязательно являются лишь частичными, и продавцы, как известно, устанавливают цену конкретно (и только) для эталонного теста, создавая узкоспециализированную «специальную эталонную конфигурацию» с искусственно заниженной ценой. Даже небольшое отклонение от пакета тестов приводит к гораздо более высокой цене в реальных условиях.
    • Нагрузка на оборудование (пространство, мощность и охлаждение). Когда используется больше энергии, портативная система будет иметь меньший срок службы батареи и требует более частой подзарядки. Сервер, который потребляет больше энергии и / или места, может не соответствовать существующим ограничениям ресурсов центра обработки данных, включая ограничения на охлаждение. Существуют реальные компромиссы, поскольку большинству полупроводников требуется больше энергии для более быстрого переключения. См. Также производительность на ватт .
    • В некоторых встроенных системах, где память стоит значительных затрат, лучшая плотность кода может значительно снизить затраты.
  • Тесты производительности поставщиков обычно игнорируют требования к вычислительной мощности для разработки, тестирования и аварийного восстановления . Продавцы хотят сообщать только о том, что может потребоваться только для производственных мощностей, чтобы их первоначальная цена приобретения казалась как можно более низкой.
  • У тестов возникают проблемы с адаптацией к широко распространенным серверам, особенно к тем, которые имеют повышенную чувствительность к сетевым топологиям. Появление грид-вычислений , в частности, усложняет сравнительный анализ, поскольку некоторые рабочие нагрузки «дружественны к сеткам», а другие - нет.
  • Восприятие производительности у пользователей может сильно отличаться от того, о котором можно судить по результатам тестов. В частности, пользователи ценят предсказуемость - серверы, которые всегда соответствуют соглашениям об уровне обслуживания или превышают их . В тестах обычно делается упор на средние оценки (с точки зрения ИТ), а не на максимальное время отклика в наихудшем случае (с точки зрения вычислений в реальном времени ) или низкие стандартные отклонения (с точки зрения пользователя).
  • Многие серверные архитектуры резко деградируют при высоких (почти 100%) уровнях использования - «падают с обрыва» - и тесты производительности должны (но часто не учитывают) этот фактор. В частности, поставщики обычно публикуют тесты производительности серверов при постоянной загрузке около 80% - нереальная ситуация - и не документируют, что происходит с системой в целом, когда спрос превышает этот уровень.
  • Многие тесты ориентированы на одно приложение или даже на один уровень приложений, исключая другие приложения. Большинство центров обработки данных в настоящее время широко внедряют виртуализацию по разным причинам, и сравнительный анализ все еще приближается к той реальности, когда несколько приложений и уровней приложений одновременно работают на консолидированных серверах.
  • Существует немного (если таковые имеются) высококачественных тестов, которые помогают измерить производительность пакетных вычислений, особенно одновременных пакетных вычислений большого объема и онлайновых вычислений. Пакетные вычисления, как правило, больше ориентированы на предсказуемость правильного выполнения длительных задач до крайних сроков, таких как конец месяца или конец финансового года. Многие важные основные бизнес-процессы ориентированы на пакетную обработку и, вероятно, всегда будут таковыми, например, выставление счетов.
  • Учреждения, проводящие сравнительный анализ, часто игнорируют или не следуют основным научным методам. Это включает, помимо прочего: небольшой размер выборки, отсутствие переменного контроля и ограниченную повторяемость результатов.

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

Есть семь важных характеристик для тестов. Эти ключевые свойства:

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

Типы тестов

  1. Реальная программа
    • программное обеспечение для обработки текстов
    • инструментальное программное обеспечение САПР
    • прикладное программное обеспечение пользователя (например, MIS)
  2. Компонентный тест / микробенчмарк
    • Основная процедура состоит из относительно небольшого и специфического фрагмента кода.
    • измерять производительность основных компонентов компьютера
    • может использоваться для автоматического определения параметров оборудования компьютера, таких как количество регистров, размер кеша , задержка памяти и т. д.
  3. Ядро
    • содержит ключевые коды
    • обычно абстрагируется от реальной программы
    • популярное ядро: Livermore loop
    • тест linpack (содержит базовую подпрограмму линейной алгебры, написанную на языке FORTRAN)
    • результаты представлены в Mflop / s.
  4. Синтетический тест
    • Порядок программирования синтетического бенчмарка:
      • снимать статистику всех типов операций из многих прикладных программ
      • получить долю каждой операции
      • написать программу исходя из указанной выше пропорции
    • Типы синтетических тестов:
    • Это были первые стандартные компьютерные тесты общего назначения. Они не обязательно получают высокие баллы на современных конвейерных компьютерах.
  5. Тесты ввода / вывода
  6. Тесты базы данных
    • измерять пропускную способность и время отклика систем управления базами данных (СУБД)
  7. Параллельные тесты
    • используется на машинах с несколькими ядрами и / или процессорами, или на системах, состоящих из нескольких машин

Общие тесты

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

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

  • Многопользовательский тест AIM - состоит из списка тестов, которые можно смешивать для создания «смеси нагрузки», которая имитирует определенную функцию компьютера в любой ОС типа UNIX.
  • Bonnie ++ - тест файловой системы и жесткого диска
  • BRL-CAD - кроссплатформенный архитектурно-независимый тестовый пакет, основанный на производительности многопоточной трассировки лучей; базируется на VAX-11/780; и используется с 1984 года для оценки относительной производительности ЦП, различий компиляторов, уровней оптимизации, согласованности, различий в архитектуре и различий операционных систем.
  • Коллективные знания - настраиваемая кроссплатформенная структура для краудсорсинга сравнительного анализа и оптимизации пользовательских рабочих нагрузок (например, глубокого обучения ) на оборудовании, предоставляемом волонтерами.
  • Coremark - Тест для встраиваемых вычислений
  • DEISA Benchmark Suite - эталонный тест научных приложений для высокопроизводительных вычислений
  • Dhrystone - целочисленная арифметическая производительность, часто указываемая в DMIPS (миллионы инструкций Dhrystone в секунду)
  • DiskSpd - инструмент командной строки для тестирования хранилища, который генерирует различные запросы к компьютерным файлам , разделам или устройствам хранения.
  • Fhourstones - целочисленный тест
  • СОВЕТ - предназначен для измерения общей производительности процессора и памяти.
  • Iometer - средство измерения и характеристики подсистемы ввода / вывода для одиночных и кластерных систем.
  • IOzone - Тест файловой системы
  • Тесты LINPACK - традиционно используются для измерения FLOPS
  • Петли Ливермора
  • Параллельные тесты NAS
  • NBench - набор синтетических тестов для измерения производительности целочисленной арифметики, операций с памятью и арифметики с плавающей запятой.
  • PAL - эталон для физических движков в реальном времени
  • PerfKitBenchmarker - набор тестов для измерения и сравнения облачных предложений.
  • Phoronix Test Suite - кроссплатформенный тестовый пакет с открытым исходным кодом для Linux, OpenSolaris, FreeBSD, OSX и Windows. Он включает в себя ряд других тестов, включенных на эту страницу, чтобы упростить выполнение.
  • POV-Ray - 3D визуализация
  • Tak (функция) - простой тест, используемый для проверки производительности рекурсии
  • Тест TATP - Тест обработки транзакций в телекоммуникационных приложениях
  • TPoX - эталонный тест обработки транзакций XML для баз данных XML.
  • VUP (VAX unit of performance) - также называемый VAX MIPS
  • Whetstone - арифметическая производительность с плавающей запятой, часто выражаемая в миллионах инструкций Whetstone в секунду (MWIPS)

Тесты Microsoft Windows

Другие

  • AnTuTu - обычно используется на телефонах и устройствах на базе ARM.
  • Geekbench - кроссплатформенный тест для Windows, Linux, macOS, iOS и Android.
  • iCOMP - сравнительная производительность микропроцессоров Intel, опубликованная Intel
  • Khornerstone
  • Рейтинг производительности - схема моделирования, используемая AMD и Cyrix для отражения относительной производительности, обычно по сравнению с конкурирующими продуктами.
  • SunSpider - тест скорости браузера
  • VMmark - набор тестов для виртуализации.

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

использованная литература

  1. ^ Флеминг, Филип Дж .; Уоллес, Джон Дж. (1986-03-01). «Как не обмануть статистику: как правильно подвести итоги тестов» . Коммуникации ACM . 29 (3): 218–221. DOI : 10.1145 / 5666.5673 . ISSN  0001-0782 . S2CID  1047380 . Проверено 9 июня 2017 .
  2. ^ Krazit, Том (2003). «Переоценка контрольной тактики NVidia» . Новости IDG . Архивировано из оригинала 2011-06-06 . Проверено 8 августа 2009 .
  3. ^ Кастор, Кевин (2006). «Аппаратное тестирование и методология бенчмаркинга» . Архивировано из оригинала на 2008-02-05 . Проверено 24 февраля 2008 .
  4. ^ Дай, Вэй; Берлеант, Даниэль (12–14 декабря 2019 г.). «Сравнительный анализ современного оборудования и платформ глубокого обучения: обзор качественных показателей» (PDF) . Первая международная конференция IEEE 2019 года по когнитивному машинному интеллекту (CogMI) . Лос-Анджелес, Калифорния, США: IEEE. С. 148–155. arXiv : 1907.03626 . DOI : 10.1109 / CogMI48466.2019.00029 .
  5. ^ Ehliar, Andreas; Лю, Дэйк. «Тестирование сетевых процессоров» (PDF) . Цитировать журнал требует |journal=( помощь )
  6. ^ Совет по производительности обработки транзакций (февраль 1998 г.). «История и обзор ТПК» . TPC . Совет по производительности обработки транзакций . Проверено 2 июля 2018 .

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