МЕТОДЫ ОЦЕНКИ КОМПЬЮТЕРНЫХ СИСТЕМ
Мфлопс и производительность
вычислительных систем
Часто производительность вычислительных систем выражается в Мфлопс.
Рассмотрим вопросы измерения производительности вычислительных систем более
подробно (еще более подробно см. comp.benchmarks FAQ и указанные там ссылки).
Тесты производительности
(benchmarks) - общие сведения
- Тесты производительности (benchmarks) - это тесты, измеряющие производительность
систем, или подсистема на решении заранее определенных задач или наборов
задач.
- Результаты тестов производительности обычно используются для предсказания
производительности незнакомой (не купленной, не установленной) системы
при решении (заранее определенных) задач пользователя и для сравнения производительности
систем или подсистем для некоторого класса задач.
- Тесты производительности также могут быть использованы и при контроле,
диагностике и настройке систем для выявления узких мест и плохо работающих/ненастроенных
подсистем.
- Тесты производительности чаще всего измеряют обобщенные показатели
производительности систем или подсистем, таких как графическая подсистема,
подсистема ввода/вывода, процессор (для операций с целыми числами и для
операций с числами с плавающей запятой) и т.д., однако, многие тесты
измеряют производительность при решении конкретных, но типичных задач,
таких как отображение многоугольников, чтение и запись файлов или операции
над матрицами.
- Каждая организация или подразделение, занимающееся решением своих задач
на компьютерах, может (что, в принципе, весьма полезно, если будет сделано
грамотно) создать свой набор тестов производительности, которые будут наиболее
точно отражать специфику задач, решаемых данным подразделением Частным
случаем такого теста может быть решение реальных задач с фиксированными
исходными данными и измерение времени решения. Главный недостаток таких
тестов - либо результаты будут известны только для систем, которые доступны
авторам, либо авторы должны широко распространить свои тесты и убедить
других людей проводить их и публиковать (сообщать) результаты;
- В мире существует уже достаточно большой набор разработанных тестов,
оценивающих различные аспекты производительности систем и подсистем. Приведу
только названия наиболее известных: 007 (ODBMS), AIM, Dhrystone, Khornerstone,
LFK (Livermore Loops), LINPACK, MUSBUS, NAS Kernels, Nhfsstone, PERFECT,
RhosettaStone, SLALOM, SPEC, SSBA, Sieve of Eratosthenes, TPC, WPI Benchmark
Suite, Whetstone, Xstone, bc, SYSmark, Stanford, Bonnie, IOBENCH, IOZONE,
Byte, Netperf, Nettest, ttcp, CPU2, Hartstone, EuroBen, PC Bench / WinBench
/ NetBench, Sim, Fhourstones, Heapsort, Hanoi, Flops, C LINPACK, TFFTDP,
Matrix Multiply (MM), Digital Review.
Мфлопс - что
это значит?
Англоязычный термин MFLOPS является
сокращением Millions of FLoating point OPerations per Second и означает
Миллион операций с плавающей точкой в секунду.
MFLOPS часто употребляется изготовителями высокопроизводительных вычислительных
систем для указания их вычислительной мощности при операциях с числами
с плавающей точкой. К сожалению, практически всегда не указывается, что
именно обозначает указанное число MFLOPS.
Мне удалось найти два набора известных тестов, результаты которых выражаются
в единицах MFLOPS - это тесты Flops и LINPACK.
Тесты Flops
Тесты Flops основаны на измерении скорости
выполнения набора смеси инструкций FADD, FSUB, FMUL и FDIV. Результаты
выдаются в MFLOPS. Четыре различных теста FLOPS1 - FLOPS4 различаются количеством
инструкций FDIV в смеси (от 25% до 0%).
Тест можно использовать как для скалярных, так и для векторных процессоров.
Тесты LINPACK
Эти тесты родились из библиотеки подпрограмм
для задач линейной алгебры LINPACK. Первоначально тест был написан на
языке Fortran (и сейчас часто используется эта версия теста), существует
и версия на языке C. Основное время теста занимает внутренний цикл, выполняющий
типичную для действий с матрицами операцию
Стандартная версия теста оперирует с матрицами 100 * 100, однако, есть
версии для матриц размерами 300 * 300 и 1000 * 1000 с различными правилами
оптимизации. Тест LINPACK достаточно хорошо векторизуется и распараллеливается
на большинстве систем.
Основной недостаток теста LINPACK - он дает имеющие смысл результаты
только для вычислений приведенного выше вида.
Проблемы сравнения
результатов в MFLOPS
Когда мы начинаем сравнивать различные вычислительные
системы по показателю производительности, указанному в MFLOPS, нужно быть
очень осторожными:
- не всегда ясно, как именно получено приведенное число (обычно это актуально
для показателей производительности, указываемой изготовителями оборудования);
- даже если ясно, при исполнении какого теста получено значение производительности,
необходимо учитывать, что тесты написаны на языках высокого уровня, и операционная
система, компилятор и установки оптимизации компилятора могут повлиять
на результаты в несколько раз;
- неоднозначна интерпретация приводимых результатов MFLOPS для многопроцессорных
систем - мне кажется весьма вероятным, что некоторые производители просто
перемножают производительность MFLOPS для одного процессора на число процессоров
и таким образом получают результат.
Производительность
в MFLOPS для некоторых систем
Несмотря на отмеченные выше проблемы, позволю себе построить
некоторую сводную таблицу производительности в MFLOPS (что бы это не означало)
для нескольких распространенных систем. Значения результатов тестов взяты
из соответствующих таблиц в Интернет по адресу http://performance.netlib.org/perfomance/html/PDSreports.html,
значения от производителей - из материалов производителей.
Дмитрий Ковригин, ведущий специалист фирмы Эврика
Тел. 327-3343
КОМПЬЮТЕР-ИНФОРМ