Дристон - Dhrystone

Дристон это синтетический вычисление ориентир программа, разработанная в 1984 г. Райнхольд П. Вайкер предназначен для представления системного (целочисленного) программирования. Dhrystone стал представителем общего процессора (ЦПУ ) спектакль. Название "Dhrystone" - это игра слов на другом алгоритме тестирования, который называется Точильный камень.[1]

С помощью Dhrystone Вайкер собирал метаданные из широкого спектра программного обеспечения, включая программы, написанные на FORTRAN, PL / 1, SAL, АЛГОЛ 68, и Паскаль. Затем он охарактеризовал эти программы с точки зрения различных общих конструкций: вызовы процедур, указатель косвенные указания, задания и т. д. Исходя из этого, он написал тест Dhrystone, чтобы соответствовать репрезентативному миксу. Dhrystone был опубликован в Ада, с C версия для Unix разработан Риком Ричардсоном («версия 1.1»), что значительно повысило его популярность.

Дристон против Уэтстоуна

Тест Dhrystone не содержит плавающая точка операций, поэтому название - игра слов на популярном в то время Точильный камень тест для операций с плавающей запятой. Результатом теста является количество кристаллов в секунду (количество итераций основного цикла кода в секунду).

И Точильный камень, и Дристон являются синтетический бенчмарки, означающие, что это простые программы, тщательно разработанные для статистического моделирования использования процессора некоторым общим набором программ. Whetstone, разработанный в 1972 году, изначально стремился имитировать типичные программы на Алголе 60, основанные на измерениях 1970 года, но в конечном итоге стал наиболее популярным в своей версии на Фортране, отражающей высокую числовую ориентацию вычислений в 1960-х годах.

Вопросы, которые решает Dhrystone

В конечном итоге важность Dhrystone как индикатора универсальной («целочисленной») производительности новых компьютеров сделала его мишенью для авторов коммерческих компиляторов. Различные современные компиляторы статический анализ кода техники (такие как устранение мертвого кода: например, код, который использует процессор, но дает внутренние результаты, которые не используются или не выводятся) затрудняют использование и разработку синтетических тестов. Версия 2.0 эталонного теста, выпущенная Вейкером и Ричардсоном в марте 1988 г., содержала ряд изменений, направленных на то, чтобы помешать ряду методов компиляции. Тем не менее, он был тщательно разработан, чтобы не повлиять на базовый тест. Эта попытка помешать компиляторам увенчалась успехом лишь отчасти. Dhrystone 2.1, выпущенный в мае того же года, имел некоторые незначительные изменения и по состоянию на июль 2010 г. остается текущим определением Dhrystone.

Помимо проблем, связанных с оптимизацией компилятора, с Dhrystone упоминались и другие проблемы. Большинство из них, включая малый размер кода и небольшой размер набора данных, были поняты во время его публикации в 1984 году. Более тонким является небольшое избыточное представление строковых операций, которое в значительной степени связано с языком: и Ada, и Pascal имеют строки как обычные переменные в языке, тогда как C этого не делает, поэтому то, что было простым назначением переменных в эталонных тестах, стало операциями копирования буфера в библиотеке C. Другая проблема заключается в том, что в отчет не включена информация, которая имеет решающее значение при сравнении систем, например, какой компилятор использовался и какие оптимизации.

Dhrystone остается удивительно устойчивым в качестве простого эталона, но его неизменная ценность в установлении истинных характеристик сомнительна. Он прост в использовании, хорошо документирован, полностью самодостаточен, хорошо понятен и может работать практически в любой системе. В частности, он по-прежнему широко используется в мире встроенных вычислений, хотя недавно разработанные EEMBC набор тестов, HINT, Stream и даже Bytemark широко цитируются и используются, а также более конкретные тесты для подсистемы памяти (Cachebench), TCP / IP (TTCP) и многих других.

Полученные результаты

Dhrystone может представлять результат более значимо, чем MIPS (миллион инструкций в секунду), потому что сравнение количества инструкций между различными наборами инструкций (например, RISC против. CISC ) может запутать простые сравнения. Например, одна и та же высокоуровневая задача может потребовать гораздо больше инструкций на RISC-машине, но может выполняться быстрее, чем одна инструкция CISC. Таким образом, оценка Dhrystone учитывает только количество завершений итераций программы в секунду, что позволяет отдельным машинам выполнять этот расчет индивидуально для каждой машины. Еще одно распространенное представление теста Dhrystone - это DMIPS (Дристон MIPS ), полученный при делении оценки Dhrystone на 1757 (количество кристаллов в секунду, полученных на VAX 11/780, номинально машина 1 MIPS).

Другой способ представления результатов - в DMIPS / МГц, где результат DMIPS делится на частоту ЦП, чтобы упростить сравнение ЦП, работающих на разных тактовая частота.

Недостатки

Использование Dhrystone в качестве эталона имеет подводные камни:

  • Он имеет необычный код, который обычно не соответствует реальным программам.[2]
  • Он подвержен оптимизации компилятора. Например, он выполняет частое копирование строк в попытке измерить производительность копирования строк. Однако струны в Dhrystone имеют известную постоянную длину, и их начало выровнено по естественным границам, две характеристики обычно отсутствуют в реальных программах. Следовательно, оптимизатор может заменить копию строки последовательностью перемещений слов без каких-либо циклов, что будет намного быстрее. Следовательно, такая оптимизация завышает производительность системы, иногда более чем на 30%.[3]

Смотрите также

Рекомендации

  1. ^ Каламбур: шчасEtstone → мокрый камень → сухой камень → dчаскристалл.
  2. ^ а б Вайс, Алан. «Тест Dhrystone: история, анализ,« результаты »и рекомендации» (PDF). В архиве (PDF) из оригинала 2011-07-26. Получено 2020-04-28.
  3. ^ Франко Заппа (2017). Микроконтроллеры: оборудование и прошивка для 8-битных и 32-битных устройств. Società Editrice Esculapio. п. 66. ISBN  978-88-9385-022-3.

внешняя ссылка