Dhrystone
Dhrystone — синтетический тест производительности компьютеров, разработанный в 1984 году Reinhold P. Weicker. Нацелен на тестирование системной (целочисленной) производительности процессоров общего назначения. Сходный тест — Whetstone.
Для Dhrystone его автор собрал статистику исполнения большого количества программ, написанных на языках FORTRAN, PL/1, SAL, ALGOL 68, Pascal. Статистика разделена между различными конструкциями, такими как вызовы процедур, обращение по указателю, присваивание и т. д. На базе этих данных был создан тест Dhrystone, имеющий аналогичные соотношения между разными операциями. Изначально он написан на языке Ada, позже Rick Richardson разработал версию 1.1 на языке Си (для ОС семейства Unix).
Тест был популярен в 1980-е годы.[1]
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 тестируется слабо.[2]
См. также
Примечания
- ↑ О разрядности процессоров . iXBT.com. — «... на популярном в 1980-е бенчмарке Dhrystones...». Дата обращения: 27 сентября 2013. Архивировано 3 апреля 2013 года.
- ↑ ECL Dhrystone White Paper . Дата обращения: 20 декабря 2012. Архивировано 26 июля 2011 года.
Литература
- Weicker, Reinhold. Dhrystone: A Synthetic Systems Programming Benchmark (англ.) // Communications of the ACM : journal. — 1984. — October (vol. 27, no. 10). — P. 1013—1030. — doi:10.1145/358274.358283.
Ссылки
- Dhrystone results for Unix machines.
- Newsgroup posting for calculation of DMIPS
- C version of Dhrystone in a sh file
- Self configuring and compiling version.
- Comments on Benchmark pitfalls. Set 8, Slide 11, page 95
- Dhrystone Benchmark Results On PCs
- Source code and C/C++ pre-compiled versions for PCs
- CoreMark