Dhrystone

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Dhrystone — синтетический тест производительности компьютеров, разработанный в 1984 году Reinhold P. Weicker. Нацелен на тестирование системной (целочисленной) производительности процессоров общего назначения. Сходный тест — Whetstone.

Для Dhrystone его автор собрал статистику исполнения большого количества программ, написанных на языках FORTRAN, PL/1, SAL, ALGOL 68, Pascal. Статистика разделена между различными конструкциями, такими как вызовы процедур, обращение по указателю, присваивание и т. д. На базе этих данных был создан тест Dhrystone, имеющий аналогичные соотношения между разными операциями. Изначально он написан на языке Ada, позже Rick Richardson разработал версию 1.1 на языке Си (для ОС семейства Unix).

Тест был популярен в 80-е годы.[1]

Dhrystone и Whetstone[править | править вики-текст]

Тест Dhrystone не содержит операций над числами с плавающей запятой, и его название образовано от теста Whetstone с помощью игры слов.

Результатом теста является Dhrystones per second (количество итераций основного цикла в секунду).

Тесты Whetstone и Dhrystone являются синтетическими, то есть простыми программами, выдерживающие определенные соотношения между различными типами инструкций. Данные соотношения сходны с статистическими характеристиками некоторых наборов программ. Whetstone, разработанный в 1972 использовал в качестве набора типичные задачи на Algol 60 (по состоянию на 1970 год). Более популярная fortran версия whetstone отражает вычислительную ориентацию программ 1960-х годов.

Цели Dhrystone[править | править вики-текст]

Dhrystone используется уже более 20 лет с момента написания.

Dhrystone и CoreMark[править | править вики-текст]

CoreMark — небольшой тест производительности от некоммерческого Embedded Microprocessor Benchmark Consortium (EEMBC). Может запускаться на большом количестве процессорных ядер (например, на микроконтроллерах), в чем сходен с Dhrystone. Оба теста бесплатны. CoreMark избегает проблем с оптимизациями, используя реальные алгоритмы вместо синтетического набора инструкций. Кроме того, результаты работы тестов сверяются с эталонными. Существует набор правил по запуску теста и публикации его результатов.

Результаты[править | править вики-текст]

Dhrystone выдает результат в форме: Количество итераций в секунду. Часто этот результат приводят к DMIPS (от Dhrystone MIPS) путём деления на 1757 (результат Dhrystone/s для компьютера VAX 11/780, то есть номинальной машине с 1 DMIPS).

DMIPS можно делить на частоту процессора, чтобы получить DMIPS/MHz. Такие единицы позволяют сравнивать процессоры с разной тактовой частотой.

Ограничения[править | править вики-текст]

Dhrystone содержит необычный код, который не встречается в обычных программах. Кроме того, результат Dhrystone может быть искажен оптимизациями компилятора. Например, в тесте производится множество копирований строк для измерения производительности строковых функций. Однако, строки в Dhrystone имеют заранее известную постоянную длину, а их начала выровнены по натуральным границам. В обычных программах эти два свойства часто не выполняются. Благодаря известной длине и смещению, оптимизатор может заменить строковое копирование на последовательность копирований слов (без цикла), завысив производительность (иногда на десятки процентов).

Код Dhrystone достаточно небольшой, чтобы полностью помещаться в кэш инструкций современного процессора, поэтому производительность instruction fetch тестируется слабо.[2]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. [1]: "на популярном в 1980-е бенчмарке Dhrystones"
  2. ECL Dhrystone White Paper

Литература[править | править вики-текст]

  • Weicker, Reinhold (October 1984). «Dhrystone: A Synthetic Systems Programming Benchmark». Communications of the ACM 27 (10): 1013–30. DOI:10.1145/358274.358283.

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