Бегинки и бегарды
- 1 year ago
- 0
- 0
Whetstone — синтетический тест производительности (бенчмарк) для компьютеров. Изначально написан в ноябре 1972 года на языке программирования Алгол 60 в в Великобритании на базе статистики поведения программ, полученной на компьютере с использованием модифицированного компилятора Whetstone Algol 60. Статистика поведения программ отражает типичные научные задачи, решаемые KDF9. Компилятор Whetstone был создан подразделением Atomic Power компании English Electric в , графство Лестершир , в честь которого получил своё название. Последний компьютер KDF9 был выключен в 1980 году, но возможен запуск оригинального теста на эмуляторе.
Версия бенчмарка, написанная на языке Фортран (FOPR12 и FOPR13), стала первым широко используемым тестом производительности общего назначения. Она была разработана Harold Curnow из Technical Support Unit (TSU — позже стало частью Central Computer and Telecommunications Agency — ). В дальнейшем эта версия развивалась Roy Longbottom, также из TSU/CCTA.
Бенчмарк Whetstone изначально измерял производительность в единицах kilo-Whetstone Instructions Per Second (kWIPS, тысячи Whetstone-инструкций в секунду). Позже стандартной единицей стали MWIPS — миллионы таких инструкций в секунду. Исторические результаты различных мини-компьютеров , мейнфреймов и суперкомпьютеров опубликованы на сайте . Также указаны год выпуска систем и их стоимость. Для сравнения дано несколько результатов, полученных на персональных компьютерах: .
Существуют версии с исходным кодом для ПК на языках C / C++ , Basic , Visual Basic , Fortran , Java , опубликованные на сайте Roy Longbottom . Также подготовлены скомпилированные программы для DOS , OS/2 , Windows .
В первую очередь Whetstone измеряет производительность работы арифметики с плавающей запятой. Сходный бенчмарк для целочисленных и строковых операций — Dhrystone .
Тест является очень простым, состоит всего из 150 операторов с 8 активным циклами, три из которых запускаются внутри подпрограмм. Тестируется выполнение арифметики с плавающей запятой, вызовов функций, присваиваний, работы с числами с фиксированной запятой, ветвлений. Наиболее сложный цикл, который исполняется от 30 до 50% времени, проводит вычисления с плавающей запятой и вызов подпрограммы.
Используется очень небольшое количество данных, которые полностью помещаются в кеш первого уровня (L1) большинства центральных процессоров. Таким образом, скорость кеша второго уровня и памяти не влияют на полученную производительность. Результат теста пропорционален частоте процессора.
Код разрабатывался так, чтобы его не могли оптимизировать компиляторы. Однако не учитывалось, что компиляторы могут встраивать функции в точку вызова (оптимизация inline). С использованием современных компиляторов скорость исполнения теста увеличивается приблизительно в два раза за счет inline, подбора инструкций и удаления промежуточных пересылок через память.