Какое бы качество Вы ни захотели оценить, всегда
найдутся по меньшей мере три противоречивых
критерия его оценки.
Закон Паркинсона.

Многие фирмы, работающие на рынке рабочих станций и серверов, предлагаю сегодня различные многопроцессорные и многопользовательские вычислительные системы. Если верить рекламе, каждая такая система обязательно уникальна и способна решить все Ваши текущие, да и будущие проблемы. Так ли это в действительности, какими критериями следует пользоваться при выборе системы, действительно отвечающим вашим потребностям? Как, наконец, оценить самого продавца, чтобы максимально застраховать себя от возможных неожиданностей?

Наиболей известностью с широких кругах компьютерной общественности исторически пользовались оценки MIPS (миллион инструкций в секунду при работе с целыми числами) и MFLOPS (миллион инструкций в секунду при работе с вещественными числами). В большей степени это было связано с тем, что компьютер олицетворялся с центральным процессором, основной и понятной характеристикой которого было быстродействие, измеряемое числом команд в единицу времени. С появлением новых архитектур, отбирающих у процессора его монопольное право по своему усмотрению распоряжаться сей вычислительной системой, старые методики оценки (benchmarks) перестали отражать реальные возможности архитектуры в целом. Расширение круга решаемых задач также поколебало устои однозначных оценок, получаемых только на основе количества выполняемых операций. В каждом конкретнос случае от вычислительной системы могут требоваться различные возможности, будь то управление сетью, ведение баз данных или визуализация результатов научного эксперимента.

Оценка производительности процессора

Традиционной тестовой смесью, используемой для оценки как процессоров, так и компиляторов с языка См, является Dhrystone. Искуственно созданный текст представляет собой смесь из 100 команд, из которых 53 - операции присваивания, 32 - управления, а 15 - вызовы фукнции. Тест может выполняться в режиме с использованием регистров для увеличения проивзодительности и в режиме без применения регистров. Наибольшее распространение получил тест Dhrystone MIPS, основанный на Dhrystone версии 1.1, результат изменения по которому получается при делении количества инструкций, выполняемых в секунду на число 1757. Один MIPS равен 1757 Dhrystone в секунду, что эквивалентно производительности компьютера VAX 11/780.

Тестовая смесь Linpack предназначена для получения относительных оценок быстродействия компьютера при решении системы линейных уравнений размером 100х100. Для последней версии Linpack DP1000 использется система уравнений размером уже 1000х1000. Тест позволяет получить оценку по эффективности процессора и компиляторов в случае обработки больших потоков вещественных чисел. Основу программы на языке Фортран составляют функции из библиотеки Basic Linear Algebra Subroutines (BLAS). Результат измеряется в MFLOPS - миллион операций в секунду, выполняемых над вещественными числами двойной точности.

Новым шагом на пути создания более информативных оценок возможностей процессора явилась тестовая смесь SPEC, подготовленная корпорацией Standard Performance Evaluation, которая была одной из первых некоммерческих организаций, специализирующихся именно на проведении тестирования. Главным результатом деятельности корпорации стали два комплекта тестов для проверки быстродействия процессора: SPECint92 и SPECftp92,оценивающих работу процессора с целыми и вещественными числами соответственно.

SPECinit92 включает программы из шести различных областей применения: теория цепей, Лисп-интерпретатор, логические задачи, упаковка текстовых файлов, электронные таблицы и среда программирования. Производительность процессора измеряется в относительных единицах к VAX 11/780 и равна среднеарифметическому по всем тестам. Перечислим все тесты, входящие в смесь SPECint92.

Espresso - генерация и оптимизация матриц булевой логики, эвристики по минимизации логических выражений. Данный тест оценивает быстродействие процессора при работе с целыми числами.

Li - программа на языке Си, реализующая интерпретатор с языка Лисп. Используется для оценки процессора в режиме интенсивной работы.

Eqntolt - программа на языке Си, преобразующая логические уравнения в таблицы истинности. До 95% всего времени работы данного теста используется библиотечной программой сортировки qsort().

Compress - стандартная утилита UNIX по упаковке текстового файла на основе алгоритма Lempel-Ziv. Для тестирования используется текст размером 1 Мб, который двадцать раз подвергается сжатию. Данная программа применяется для оценки работы процессора в интенсивном режиме с одновременным выполнением операций ввода/вывода.

Sc программа на Си, реализующая операции, типичные для любой системы обработки электронных таблиц: перемещение курсора и данных, управление файлами, а также операции со строками и столбцами таблицы.

Gcc - стандартный компилятор GNU, преобразующий 19 исходных текстов программ на языке Си в оптимизированный ассемблерный код.

Смесь SPECftp92 состоит из 14 тестов, пять из которых выполняются с одинарной точностью, остальные с двойной. В состав данной смеси входят следующие тестовые программы: Spice2g6 - программа на Фортране для моделирования аналоговых цепей. Тест выполняется с двойной точностью, интенсивно использует кэш-память и работает с комплексными числами. До 80% всех операций занимают пересылки из памяти в память.

Doduc - программа на языке Фортран для моделирования методом Монте-Карло термодинамики ядерного реактора. Тест выполняется с двойной точностью, содержит небольшое число операций ввода/вывода, множество коротких ветвлений и циклов.

Mdljdp2 - программ на Фортране по решению используемого в квантовой химии уравнения движения для 500 атомов.На каждом шаге с помощью уравнений статистической механики вычислятеся энергия и давление газа. Тест выполняется с двойной точностью.

Wave5 - программа на Фортране для решения уравнения Максвелла и управления движением частицы в декартовой сетке при различных граничных условиях. Тестовый пример содержит 500 тыс. частиц на сетке из 500 тыс. точек, расположенных с шагом 5 единиц.

Tomcatv - программа на Фортране для нанесения сетки на модель корпуса автомобиля или крыла самолета. Тест выполняется с двойной точностью и специально ориентирован на проверку возможностей использования кэш памяти и организации вычислений для суперскалярных и векторных компьютерных систем.

Ora - программа на языке Фортран по трассировке лучей, проходящих через оптическую систему из сферических и плоских поверхностей. Проверяется работа процессора в интенсивном режиме обработки чисел в формате с двойной точностью.

Alvinn - программа на Си по моделированию движения роботов. Тест выполняется с одинарной точностью. На входе программа получает сетку из 1220 узлов, в каждом из которых помещаются данные от двух устройств зрения робота (видеокамера и дальномер). Программ генерирует 35 различных управляющих директив самоходной тележки робота.

Ear - программа на Си по моделированию уха человека. Тест выполняется с двойной точностью. На входе программа получает файл с данными, задающими звуковое окружение человека, а на выходе формируется спектр разложения звука по шкале времени.

Mdljs2 - версия программы Mdljdp2 для одинарной точности.

Swm256 - программа на Фортране по решению уравнения shallow-water для сетки 256х256. Тест выполняется с одинарной точностью.

Su2cor - векторизированная прогамма на Фортране по нахождению параметров межголоктического наза с помощью уравнений Навье-Стокса. Тест выполняется с двойной точностью.

Nasa7 - набор из семи билиотечных модулей на языке Фортран, выполняемых с двойной точностью (умножение матриц, инвертирование матриц и т. п.).

Fpppp - программа на Фортране по моделированию процесса замещения атомов на сериях Гаусса в квантовой химии. Задача трудно распараллеливается из-за наличия больших блоков данных. Тест выполняется с двойной точностью при интенсивном вводе/выводе.

Из состава задач, включенных в смеси SPEC, можно уже сделать предварительные выводы о принципиальной пригодности (пока только) процессора для решения ваших задач.

Например, из приведенных в таблице компьютеров, принадлежащих одной ценовой категории (до 50 тыс. долл.) для физических расчетов предпочтительны станции на базе PA-7100 или POWER. Для решения задач управления обработки информационных котоков или создания среды разработки программ предпочительные компьютеры на процессорах фирмы MIPS R4000-R4400 (например, станции фирмы Comntrol Data Systems 4460 и 9140, а также компьютеры Onyx или Grimson фирмы Silicon Graphics).

Модель
Процессор
Частота
SPECint92
SPECftp92
HP 735
PA-7100
99
80.6
149.8
HP 725
PA-7100
50
36.5
72.56
CDS 9140
R4400
150
87.9
97.1
IBM 375
POWER
62.5
70.3
118.2

Оценка производительности многопроцессорных систем

SPEC Homogeneous Capacity Method или оценка SPECrate используется для определения загрузки (емкости или пропускной способности) многопроцессорной системы. В отличие от предыдущих оценок, измеряющих скорость выполнения одного задания, SPECrate позволяет определить, как много заданий способен выполнить компьютер за конечный интервал времени.

Некоторые однопроцессорные системы способны выполнить одну задачу быстрее многопроцессорных, однако этот факт не дает полной картины интегрального поведения системы в целом. Многопроцессорные комплексы могут выполнять больше заданий в единицу времени. Если один процессор за минуту выполняет одну работу, а система из четырех процессоров делает это за две, то многопроцессорная система работает в два раза медленнее, но имеет загрузку в два раза больше, чем однопроцессорная. Загрузка находится в прямой зависимости от количества базовых ресурсов процессора (размер кэш памяти, скорость шины, емкость оперативной памяти), которые он способен выделить задаче на период выполнения. SPECrate дает также определенное представление о возможностях операционной системы и компилятора строить код, разделяемый между несколькими процессорами. Данная оценка явилась дальнейшим развитием методики SPECmark89 и одинаково хорошо характеризует как однопроцессорные, так и мультипроцессорные системы.

Набор тестовых программ для SPECrate полностью аналогичен наборам SPECint и SPECftp92 - это те же программы, но размноженные на несколько одновременно запускаемых копий. Разультирующее значение по методике SPECrate вычисляется по формуле:

SPECrate = число_копий*ref_const*cpu_const/общее_время

Число одновременно выполняемых задач может выбираться произвольным обрахом. Очевидное решение - число, равное количеству процессоров, однако для каждой конкретной архитектуры возможны свои особенности. Величины ref_const и cpu_const для каждого теста являются постоянными коэффициентами. Общее время - время завершения последней из всех запущенных работ.

В приведенной таблице даны показатели SPECrate для некоторых систем стоимостью от 50 до 100 тыс. долл. в однопроцессорном варианте и до 200 тыс. для конфигурации с двумя и более процессорами.

Модель
SPECrate_int92
SPECrate_fp92
HP 9000/800 H60
1944(1 CPU)
4074(1 CPU)
HP 9000/800 H70
3757(2 CPU)
7325(2 CPU)
CDS 4680-300
2674(2 CPU)
2676(2 CPU)
5300(4 CPU)
5523(4 CPU)
SPARCserver 2000
2326(2 CPU)
2953(2 CPU)

Оценка SPECrate хорошо характеризует возможности компьютера по организации многопользовательского режима для работы в системах коллективного пользования, а также при решении задач реального времени. Приведенные в таблице модели могут служить эталоном для компьютеров, претендующих на роль серверов в системах такого рода.

Оценка производительности при обработке транзакций

Эффективность компьютерных систем, предназначенных для решения задач информационного обеспечения, работы с базами данных, характеризуется числом транзакций, выполняемых в единицу времени. Под транзакцией обычно понимается последовательность операций ввода/вывода, во время проведения которых база данных остается неизменной. Практически транзакция представляет собой атомарную, неделимую операцию, все изменения в результате выполнения которой становятся видны сразу после ее выполнения или отсутствуют до тех пор, пока операция не завершится.

До недавнего времени все фирмы-производители рабочих станций и разработчики СУБД предлагали свои собственные способы оценки. Полностью отсутствовали общие для всех правила проведения таких оценок. В 1988 году пять ведущих фирм, среди которых были IBM, Control Data и Hewllett-Packard, организовали Совет по проведению оценки скорости выполнения транзакций, получивший название TPC (Transaction Processing Performance Council), положивший конец "войне транзакций" и установивший единые правила измерения и оформления отчетов по их результатам. Сейчас из комплекса TCP приняты в качетсве общепризнанного стандарта три оценки (А, В и С).

TCP-A характеризует быстродействие выполнения транзакций в режиме on-line для банковского кассира. При выполнении данного текста специально эмулируется операционная обстановка банка (терминалы и линии коммуникаций), а в качетсве транзакции выбирается обычная операция по обновления счета клиента. Скоромть работы в локальном окружении (без передачи тарнзакции во внешнюю сеть) измеряется в tsp-A-local. Быстродействие при работе с внешними межбансковскими сетями оценивается в tsp-A-wide. В отчет о проведенном испытании по данной методике входит стоимость компьютера вместе с необходимым программным обеспечением и дополнительным оборудованием, необхоимым для обеспечения работы банка в течение 90 дней. Стоимость вычислительной системы включает также пятилетнее сопровождение. При делении общей стоимости комплекса на полученное значение tsp получают цену одной транзакции (типа wide или local).

Оценка TCP-B представляет собой рафинированный вариант TCP-A (без эмуляции терминалов и линий связи), ориентированный на проверку возможностей только СУБД в условиях ее интенсивной эксплуатации. Единицами измеренимя являются tsp-B и стоимость одной транзакции.

Тест TCP-C появился из проекта корпорации MCC (Microelectronics and Computer Technology). Программа проверки включает моделирование различных видов деловой деятельности: операции со счетами в банке, инвентаризация и т. п. Размер транзакций в TCP-C изменяется от очень простых и коротких до очень сложных и длинных операций, которые, как и реальной практике бизнеса, требуют сложных проводок и многоступенчатых пересылок. Единицами измерения являются tmp - число транзакций в минуту и стоимость одной транзакции.

Как нетрудно заметить, показатели по оценке TCP могут зависеть не только от возможностей аппаратуры, но и от конкретной используемой базы. Обычно применяются три СУБД: Oracle, Informix и Sybase. Для примера приведем таблицу сравнению по ТСР-В, подготовленную на основе результатов, опубликованных в мае 1993 года. Модели серверов фирм НР, CDS, IBM и SUN, включеннные в данную таблицу, принадлежат одной ценовой группе (до 100 тыс. долл. вместе с СУБД, в ценах для США).

Модель
Цена
ТСР-В (tsp-B)
Цена транзакции (тыс. долл.)
СУБД
HP9000/807S
106
41.07
2.583
Informix
InfoServer 4330
86
43.32
1.741
Informix
SPARCserver 2
100
39.7
2.541
Informix
IBM 520H
106
44.76
2.375
Informix

Тестовые наборы оценки архитектуры

В 1981 году была образована фирма AIM Technology, которая является независимой организацией, специализирующейся на оценке Unix-систем и подготовке объективной информации о продукции различных фирм-производителей компьютеров. Фирма AIM использует свои собственные методики и тестовые смеси, в отличие от других оценок специально ориентированные на получение интегральнах характеристик всей системы. При тестировании проверяются все компоненты компьютера, работающего в многопользовательском и многозадачном режиме. Результаты оценок публикуются ежеквартально в виде обзорных отчетов. Фирма может готовить оценки на отдельные компьютерные системы и по специальным заявкам.

Методика AIM основана на проверке по пяти основным критериям:

  • пиковая производительность (AIM Performance Rating) - максимальная производительность в режиме наиболее оптимального использования центрального процессора, процессора работы с вещественными числами и кэш памяти. Показатель пиковой производительности - весьма информативен при выборе приложений, работающих главным образом с процессором, например, для оптимальной покупки рабочей станции.
  • максимальная нагрузка (Maximum User Load) - максимально возможное число заданий при работе наибольшено числа пользователей, которое может выполнить система за минуту. Данный показатель используется при выборе серверов.
  • обработка утилит Unix (Utilities Indexd или Milestone) - оценка возможностей по выполнению 40 утилит ОС Unix. Данный показатель используется при выборе инструментального компьютера, предназанченного для интенсивной работы с утилитами типа grep или make.
  • пропускная способность (Throughput Graph) - показатель производительности (число работ в минуту) в зависимости от степени загрузки системы.
  • цена (Price) - стоимость тестируемой компьютерной системы.

Обзорные отчеты по всем компьютерным системам содержат следующие диаграммы сравнения:

  • Цена/Пиковая производительность характеризует системы, достигающие своей пиковой производительности при работе в режиме номальной эксплуатации.
  • Цена/Максимальная загрузка характеризует системы, достигающие своей пиковой производительности при работе в условиях максимальной загрузки.
  • Пиковая производительность характеризует системы, наиболее эффективно работающие в режиме нормальной эксплуатации.
  • Максимальная загрузка - системы, демонстрирующие наилучшие показатели при работе с максимальной загрузкой.
  • Производительность при выполнении Unix-утилит идентифицирует системы, наиболее эффективно выполняющие утилиты ОС Unix за одну минуту.

Основным набором оценки собственно компьютерной системы, без вывода на терминалы, учета производительности при работе с X Window и в составе сети, является AIM System Benchmark (Suite III). Набор состоит из шести так называемых моделей: обмены с оперативной памятью (20%), работа с вещественными числами двойной и одинарной точности (10%), операции работы с целыми числами (20%), обмены данными между процессорами (10%), вызовы функций на языке Си с 0,1,2 и 15 параметрами (20%), ввод/вывод на диск (20%). В каждую диаграмму включаются семь компьютеров, показавших наилучшие результаты в своей ценовой группе: до 15 тыс. долл., 15-25 тыс. долл., 50-100 тыс. долл., 100-500 тыс. и выше 500 тыс. долл.

Для примера приведем несколько таблиц из отчета, подготовленного фирмой AIM осенью 1993 года:

"Цена/Пиковая производительность: 15-25 тыс. долл."
(Выборка из 29 систем)
Модель
Цена/AIM
Silicon Graphics Indigo R4000 (32 Мб)
232
Silicon Graphics Indigo R4000 (96 Мб)
312
Motorola Series 900 Model M921
349
Zenith Data Systems Z-Server EX P60E 1000A
385
Wyse Series 7000i Model 760MP (2 CPU)
398
Sun Sparcserver 10 Model 40
401
DECsystem 5000 Model 50
408

По другой оценке распределение в данной группе компьютеров выглядит уже по-другому.

"Цена/Максимальная загрузка: 15-25 тыс. долл."
(Выборка из 29 систем)
Модель
Цена/Максимальная загрузка
Silicon Graphics Indigo R4000 (96 Мб)
45
Zenith Data Systems Z-Server EX P60E 1000A
45
Wyse Series 7000i Model 760MP (2 CPU)
46
Compaq SYSTEMPRO/XL (112 Мб)
46
Compaq ProLiant 1000 5/6 Model 2100A
48
ICL DRS 6000 Level 360
49
Silicon Graphics Indigo R4000 (32 Мб)
57

После диаграмм сравнения в обзорном отчете размещаются данные по компьютерам в отдельности - это краткое описание, включающее только основные параметры каждой модели.

Полный отчет по отдельной компьютерной системе имеет еще три страницы, соедржащие данные тестирования по набору тестов AIM Subsystem Benchmark (Suite III). Проверка по данному наболлру производится при работе компьютера в однозадачном режиме и включает следующие оценки:

Производительность при работе с диском. Измеряется в килобайтах в секунду для двух вариантов: при использовании кэширования и без него. Оценка применяется при выборе систем для работы с базами данных, файловых серверов и рабочих мест разработчика программного обеспечения.

Производительность выполнения операций над вещественными числами. Измеряется в тысячах операций в секунду отдельно для сложения, умножения и деления с двойной и одинарной точностью. Оценка используется при выборе систем для работы в научных и физических приложениях.

Производительность при работе с целыми числами. Измеряется в тысячах операций в секунду отдельно для сложения, умножения и деления чисел в длинном (long) и коротком (short int) формате. Оценка используется при выборе систем для работы в финансовых приложениях.

Производительность операций чтения/записи в память. Измеряется в килобайтах в секунду отдельно при чтении и записи для целых чисел в длинном и коротком формате, а также символов. Оценка используется при выборе компьютеров для работы с издательскими системами и в финансовых приложениях.

Производительность операций копирования в памяти. Измеряется в килобайтах в секунду при пересылке целых чисел в длинном и коротком формате, а также символов.

Производительность операций в памяти над массивами ссылок. Измеряется в тысячах ссылок в секунду для целых числе в длинном и коротком формате.

Производительность при вызове системых функций. Измеряется количеством обращений в секунду к таким функциям Unix, как create/close, fork, sbrk(), signal и unmask.

Производительность при вызове функций в прикладной задаче. Измеряется количеством вызовов в секунду для функций без аргументов, функций с одним, двумя и пятнадцатью параметрами типа int.

Практическое использование методик оценки

Любая модель является лишь грубым приближением реальной жизни, поэтому при все своем многообразии, перечисленные ниже оценки могут не дать полной картины поведения каждой конкретной конфигурации при решении реальной задачи. Большое влияние на результаты тестирования оказывает конфигурация, здесь кроется одна из уловок, которой пользуются некоторые фирмы, самостоятельно проводя сравнительное тестирование своих компьютеров и систем других фирм-производителей.

Самый надежный способ - сравнение по оценкам, полученным независимыми фирмами, по стандартизированным тестам. В любом случае, надо обращать внимание на состав конкретных аппаратных и программных конфигураций, выбираемых для сравнения: частота процессора, размер кэш-памяти, объем оперативной памяти, версия ОС, тип компилятора.

Дмитрий  Волков, Институт прикладной математики имени М.В. Келдыша РАН (Москва).