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.

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