Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Наборы тестов - это система, предназначенная для оценки правильности программного обеспечения.

Цель [ править ]

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

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

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

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

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

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

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

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

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

Проблемы [ править ]

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

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

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

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

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

Типы тестов [ править ]

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

Общие тесты [ править ]

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

  • Корпорация производительности бизнес-приложений (BAPCo)
  • Консорциум по тестированию встроенных микропроцессоров (EEMBC)
  • Совет по сравнительному анализу связанных данных (LDBC)
    • Semantic Publishing Benchmark (SPB) : эталонный тест LDBC, вдохновленный индустрией СМИ / публикаций для тестирования производительности движков RDF [6]
    • Тест социальной сети (SNB) : тест LDBC для тестирования производительности RDF-движков, состоящий из трех различных тестов (интерактивная рабочая нагрузка, рабочая нагрузка бизнес-аналитики, рабочая нагрузка графической аналитики) на общем наборе данных [7]
  • Standard Performance Evaluation Corporation (SPEC), в частности их SPECint и SPECfp
  • Совет по производительности обработки транзакций (TPC): тесты СУБД [8]
    • TPC-A : измеряет производительность в средах баз данных с интенсивным обновлением, типичных для приложений оперативной обработки транзакций (OLTP) [9]
    • TPC-C : тест производительности онлайн-обработки транзакций (OLTP) [10]
    • TPC-H : тест поддержки принятия решений [11]

Тесты с открытым исходным кодом [ править ]

  • Многопользовательский тест AIM - состоит из списка тестов, которые можно смешивать для создания «смеси нагрузки», которая имитирует определенную функцию компьютера в любой ОС типа UNIX.
  • Bonnie ++ - тест файловой системы и жесткого диска
  • BRL-CAD - кроссплатформенный архитектурно-независимый тестовый пакет, основанный на производительности многопоточной трассировки лучей; базируется на VAX-11/780; и используется с 1984 года для оценки относительной производительности ЦП, различий компиляторов, уровней оптимизации, согласованности, различий в архитектуре и различий операционных систем.
  • Коллективные знания - настраиваемая кроссплатформенная структура для краудсорсинга сравнительного анализа и оптимизации пользовательских рабочих нагрузок (например, глубокого обучения ) на оборудовании, предоставляемом волонтерами.
  • Coremark - Тест для встраиваемых вычислений
  • Тест хранилища данных - продолжение RDF теста LDBC Social Network Benchmark от проекта Hobbit [12]
  • DEISA Benchmark Suite - эталонный тест научных приложений для высокопроизводительных вычислений
  • Dhrystone - целочисленная арифметическая производительность, часто указываемая в DMIPS (миллионы инструкций Dhrystone в секунду)
  • DiskSpd - инструмент командной строки для тестирования хранилища, который генерирует различные запросы к компьютерным файлам , разделам или устройствам хранения.
  • Embench ™ - портативные тесты с открытым исходным кодом для тестирования глубоко встроенных систем; они предполагают отсутствие ОС, минимальную поддержку библиотеки C и, в частности, отсутствие потока вывода. Embench - это проект Silicon Foundation с открытым исходным кодом .
  • Faceted Browsing Benchmark - системы тестов, которые поддерживают просмотр связанных данных с помощью итеративных переходов, выполняемых умным пользователем, из проекта Hobbit [13]
  • Fhourstones - целочисленный тест
  • СОВЕТ - предназначен для измерения общей производительности процессора и памяти.
  • Iometer - средство измерения и характеристики подсистемы ввода / вывода для одиночных и кластерных систем.
  • IOzone - Тест файловой системы
  • Kubestone - оператор сравнительного анализа для Kubernetes и OpenShift
  • Тесты 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 [ править ]

  • BAPCo : MobileMark, SYSmark, WebMark
  • CrystalDiskMark
  • Futuremark : 3DMark , PCMark
  • PiFast
  • SuperPrime
  • Супер Пи
  • Точильный камень
  • Инструмент оценки системы Windows , входящий в состав Windows Vista и более поздних версий, предоставляет потребителям индекс, позволяющий легко оценивать свои системы.
  • Worldbench (снято с производства)

Другое [ править ]

  • AnTuTu - обычно используется на телефонах и устройствах на базе ARM.
  • Berlin SPARQL Benchmark (BSBM) - определяет набор тестов для сравнения производительности систем хранения, которые предоставляют конечные точки SPARQL через протокол SPARQL на разных архитектурах [14]
  • Geekbench - кроссплатформенный тест для Windows, Linux, macOS, iOS и Android.
  • iCOMP - сравнительная производительность микропроцессоров Intel, опубликованная Intel
  • Khornerstone
  • Тест Lehigh University Benchmark (LUBM) - облегчает оценку репозиториев семантической паутины с помощью расширенных запросов к большому набору данных, которые соответствуют единственной реалистичной онтологии [15]
  • Рейтинг производительности - схема моделирования, используемая AMD и Cyrix для отражения относительной производительности, обычно по сравнению с конкурирующими продуктами.
  • SunSpider - тест скорости браузера
  • VMmark - набор тестов для виртуализации. [16]
  • RenderStats - база данных тестов 3D-рендеринга. [17]

См. Также [ править ]

  • Бенчмаркинг (с точки зрения бизнеса)
  • Показатель заслуг
  • Тесты сжатия без потерь
  • Монитор счетчика производительности
  • Набор тестов  - набор тестовых примеров, предназначенных для демонстрации того, что программа имеет определенный набор поведения.

Ссылки [ править ]

  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 News . Архивировано из оригинала 2011-06-06 . Проверено 8 августа 2009 .
  3. ^ Кастор, Кевин (2006). «Аппаратное тестирование и методология бенчмаркинга» . Архивировано из оригинала на 2008-02-05 . Проверено 24 февраля 2008 .
  4. ^ Дай, Вэй; Берлеант, Даниэль (12–14 декабря 2019 г.). «Сравнительный анализ современного оборудования и платформ глубокого обучения: обзор качественных показателей» (PDF) . Первая международная конференция IEEE 2019 года по когнитивному машинному интеллекту (CogMI) . Лос-Анджелес, Калифорния, США: IEEE. С. 148–155. DOI : 10.1109 / CogMI48466.2019.00029 .
  5. ^ Ehliar, Andreas; Лю, Дэйк. «Тестирование сетевых процессоров» (PDF) . Цитировать журнал требует |journal=( помощь )
  6. ^ LDBC. «Тест семантической публикации LDBC» . ЛДБК СПБ . LDBC . Проверено 2 июля 2018 .
  7. ^ LDBC. «Тест социальной сети LDBC» . LDBC SNB . LDBC . Проверено 2 июля 2018 .
  8. ^ Совет по производительности обработки транзакций (февраль 1998 г.). «История и обзор ТПК» . TPC . Совет по производительности обработки транзакций . Проверено 2 июля 2018 .
  9. ^ Совет по производительности обработки транзакций. «ТПК-А» . Совет по производительности обработки транзакций . Проверено 2 июля 2018 .
  10. ^ Совет по производительности обработки транзакций. «ТПК-С» . Совет по производительности обработки транзакций . Проверено 2 июля 2018 .
  11. ^ Совет по производительности обработки транзакций. «ТПК-Н» . Совет по производительности обработки транзакций . Проверено 2 июля 2018 .
  12. ^ «Тест хранилища данных» . 2017-07-28 . Проверено 2 июля 2018 .
  13. ^ «Граненый тест просмотра» . 2017-07-27 . Проверено 2 июля 2018 .
  14. ^ "Берлинский тест SPARQL (BSBM)" . Проверено 2 июля 2018 .
  15. ^ «Проекты SWAT - эталонный тест Лихайского университета (LUBM)» . Тест Лихайского университета (LUBM) . Проверено 2 июля 2018 .
  16. ^ "Правила VMmark 1.1.1" (PDF) . VMware . 2008 г. [ мертвая ссылка ]
  17. ^ "База данных тестов 3D-рендеринга" . Проверено 29 сентября 2019 . Цитировать журнал требует |journal=( помощь )

Дальнейшее чтение [ править ]

  • Грей, Джим, изд. (1993). Справочник по тестам для баз данных и транзакционных систем . Серия Морган Кауфманн в системах управления данными (2-е изд.). ISBN издательства Morgan Kaufmann Publishers, Inc. 1-55860-292-5.
  • Скальцо, Берт; Клайн, Кевин; Фернандес, Клаудиа; Burleson, Donald K .; Олт, Майк (2007). Практические методы тестирования баз данных для Oracle и SQL Server . ISBN 978-0-9776715-3-3.
  • Намбияр, Рагхунатх; Poess, Meikel, ред. (2009). Оценка производительности и сравнительный анализ . Springer. ISBN 978-3-642-10423-7.