title-icon
Яндекс.Метрика

Dhrystone


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

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

Тест был популярен в 1980-е годы.

Dhrystone и Whetstone

Тест Dhrystone не содержит операций над числами с плавающей запятой, и его название образовано от теста Whetstone с помощью игры слов. Whetstone звучит также как и Wetstone — влажный камень, Dhrystone звучит также как и Drystone — сухой камень. При этом настоящий перевод Whetstone — точильный камень, а слово Dhrystone является изобретенным и буквально не переводится.

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

Тесты Whetstone и Dhrystone являются синтетическими, то есть простыми программами, выдерживающие определенные соотношения между различными типами инструкций. Данные соотношения сходны с статистическими характеристиками некоторых наборов программ. Whetstone, разработанный в 1972 году, использовал в качестве набора типичные задачи на Algol 60 (по состоянию на 1970 год). Более популярная Фортран-версия теста отражает вычислительную ориентацию программ 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 тестируется слабо.