Методы оценки производительности ВС
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
6. Методы оценки производительности ВС
Способы измерения «комплексной» производительности:
1. Использование смеси команд
2. Аналитический метод
3. Программное моделирование
4. Использование тестовых программ
представительных
испытательных
синтетических
1. Одним из более простых методов является оценка
производительности ВС с помощью так называемой смеси
команд. Этот метод даѐт лучшую оценку по сравнению с оценкой
НП, представленной выше, однако тоже характеризует только
аппаратную часть системы. Суть метода состоит в том, что для
выбранного класса прикладных задач, определяется типовая
смесь команд, которая формируется путѐм анализа частоты
встречаемости различных команд при выполнении программ,
отображающих решаемые задачи. На основе такого анализа
отдельным командам или совокупностям однотипных команд
присваиваются весовые коэффициенты. Например, для научнотехнических задач определена смесь, названная по имени автора
«смесь Гибсона» и, которая выделяет следующие виды команд и
их весовые коэффициенты см. таблицу:
Таблица.
5.1 Виды команд и их весовые коэффициенты в смеси Гибсона
Операция
Кi
Сложение, вычитание с фиксированной запятой
0.33
Умножение с фиксированной запятой
0,006
Деление с фиксированной запятой
0,002
Сложение, вычитание с плавающей запятой
0,073
Умножение с плавающей запятой
0,04
Деление с плавающей запятой
0,016
Команды безусловной передачи управления (Jump) 0,175
Команды условной передачи управления (Jxx)
0,065
где, К – коэффициент встречаемости, при использовании смеси команд
производительность системы вычисляется следующим образом:
L
K
i
, где
i1
L
K
i
ti
i1
37
ti - продолжительность выполнения i-ой команды (например, в машинных
циклах)
L - число команд (видов команд) в смеси
Причем, здесь нет учета конфликтов между памятью и процессором.
2.
Одним
из
самых
распространѐнных
методов
оценки
производительности систем в научных кругах является использование
аналитических моделей. Метод основан на представлении ВС чаще всего в
терминах теории массового обслуживания (ТМО). Математические модели
обычно отображают поведение системы в целом с заранее
предусмотренными существенными ограничениями. И даже с такими
ограничениями не всегда удаѐтся построить математическую модель
системы. В этом случае прибегают к еѐ декомпозиции, создавая
математические модели отдельных частей системы с последующим их
объединением. Основная проблема, связанная с построением моделей,
состоит в том, что каждая такая модель должна разрабатываться
индивидуально для очень узкого класса систем, а иногда и только для
конкретной системы. К недостаткам этого метода также относятся
следующие:
1. Невозможность учитывать функционирование системного
программного обеспечения.
2. Невозможность учитывать случайные внешние и внутренние
прерывания вычислительного процесса.
3. Трудности изменения набора входных параметров моделей.
4. Сложность оценки адекватности аналитических моделей
реальной системе.
5. Сложность выбора математического аппарата и высокая
трудоѐмкость построения самой модели.
Следует обратить внимание также на то, что высокопроизводительные
системы в настоящее время строятся с обеспечением свойства
масштабируемости,
учитывать
некоторые
элементы
которого
в
аналитических моделях практически невозможно.
Следующие три метода основаны на использовании тестовых
программ. Первый из них реализуется с помощью так называемых
представительных программ. Такие программы строятся на основе
использования типичных для данной области применения систем либо
последовательностей команд, либо частей программы, либо целых программ.
Представительные программы создаются чаще всего на языке ассемблера, но
иногда и на языке высокого уровня, и с их помощью оценивается системная
производительность, правда не всегда с учѐтом реального потока
обрабатываемых данных.
Второй метод использует так называемые испытательные программы,
которые специально создаются для адекватного отображения реального
режима функционирования вычислительной системы. Испытание ВС
38
происходит как в режиме трансляции так и исполнения испытательной
программы.
Обычно
такой
метод
применяется
для
оценки
производительности специализированных ВС.
Третий метод основан на применении тестовых программ, которые
являются комбинацией представительных и испытательных программ, и
которые получили наименование синтетических программ. Преимущество
специальной совокупности синтетических программ состоит в том, что она
может быть использована для сравнительной оценки ВС одного класса,
производимых различными фирмами. Подробно этот вопрос будет
рассмотрен ниже.
Наконец нельзя не выделить ещѐ один метод оценки
производительности ВС, который по своим возможностям является одним из
самых эффективных методов. Это метод программного моделирования.
Принципиально с его помощью могут быть учтены все параметры ВС,
нюансы еѐ функционирования, при этом, конечно, надо учитывать стоимость
создания такой модели. Главным преимуществом программного
моделирования является возможность его использования ещѐ на стадии
разработки ВС.
7. Система тестов SPEC. Единицы измерения производительности ВС
SPEC (Standard Performance Evaluation Corporation) – это корпорация,
созданная в 1988 году, объединяющая ведущих производителей
вычислительной техники и программного обеспечения. Основной целью этой
организации является разработка и поддержка стандартизованного набора
специально
подобранных
тестовых
программ
для
оценки
производительности
новейших
поколений
высокопроизводительных
компьютеров [http:/www.parallel.ru./computers/benchmarks/spec.html] [C7].
Рассмотрим более подробно применение тестовых программ, для
оценки производительности ВС. Однако прежде чем перейти к существу
проблемы сделаем отступление для определения единиц измерения
производительности, которыми пользуются создатели тестов.
Сначала
обратим
внимание
на
следующее.
Номинальная
производительность аппаратных средств процессора в основном зависит от
двух параметров – такта (или частоты) синхронизации и среднего количества
тактов, необходимых для выполнения команды. Частота синхронизации
определяется технологией аппаратных средств, а среднее количество тактов
на команду определяется функциональной организацией процессора и
архитектурой
системы
команд.
Комплексная
производительность
характеризуется ещѐ одним параметром – количеством выполняемых команд
в единицу времени, которое определяется архитектурой системы команд,
количеством и типом команд, принадлежащих исполняемой прикладной
программе, и технологией компиляторов. Для измерения времени работы
процессора на данной программе используется специальный параметр –
время процессора (центрального процессора) – CPU time.
39
Одной из довольно часто встречаемых единиц измерения НП
процессора является MIPS – миллион команд в секунду. Однако,
использование MIPS в качестве показателя для сравнения различных
вычислительных систем наталкивается на три проблемы. Первая – MIPS
зависит от набора команд процессора, что затрудняет сравнение ВС с
процессорами, имеющими разные системы команд. Вторая – MIPS даже
одного и того же процессора меняется от одной прикладной программы к
другой. Третья – MIPS может меняться по отношению к производительности
в противоположную сторону в зависимости от функциональной организации
процессора. Например, у процессора, имеющего в своѐм составе сопроцессор
с плавающей точкой, в среднем на каждую команду требуется большее
количество тактов синхронизации, чем у процессора только с целочисленной
арифметикой. Поэтому последние выполняют большее количество команд в
единицу времени и, следовательно, имеют более высокий рейтинг MIPS, хотя
общее время выполнения прикладной задачи значительно больше, чем у
первых. Подобное явление наблюдается и при использовании
оптимизирующих компиляторов, когда в результате оптимизации
сокращается количество выполняемых в программе команд, рейтинг MIPS
уменьшается, а производительность увеличивается.
При решении научно-технических задач, в которых интенсивно
используется арифметика с плавающей точкой, производительность
процессора оценивается в MFLOPS - миллион элементарных арифметических
операций над числами с плавающей точкой в секунду. Как единица
измерения MFLOPS предназначена для оценки производительности только
операций с плавающей точкой, и поэтому не применима вне этой
ограниченной области. По мнению многих программистов, одна и та же
программа, исполняемая на разных машинах, будет реализовываться через
разное количество команд, но число операций с плавающей точкой будет
неизменным. Однако следует обратить внимание на следующее. Во-первых,
наборы операций с плавающей точкой не совместимы на различных
процессорах. Во-вторых, рейтинг MFLOPS меняется на смеси быстрых и
медленных операций с плавающей точкой. Например, программа со 100%
операций сложения будет иметь более высокий рейтинг, чем программа со
100% операций деления. Решение обеих проблем заключается в том, чтобы
взять «каноническое» или «нормализованное» число операций с плавающей
точкой из исходного текста программы и затем поделить его на время
выполнения. Например, авторы тестового пакета «Ливерморские циклы»
[http://www.citforum.ru/hardware/svk/glava3.shtml] вычисляют для программы
количество нормализованных операций с плавающей точкой в соответствии
со следующими соотношениями (см. табл.1.8.1).
40
Таблица 7.1. Количество нормализованных операций с ПТ тестового
пакета "Ливерморские циклы"
Реальные операции с плавающей
Нормализованные операции с
точкой
плавающей точкой
Сложение, вычитание, сравнение,
1
умножение
Деление, квадратный корень
4
Экспонента, синус,...
5
Таким образом, рейтинг реальных MFLOPS отличается от рейтинга
нормализованнных MFLOPS, который часто приводится в литературе по
суперкомпьютерам.
Теперь вернѐмся к системе тестов SPEC. Корпорация SPEC выполняет
две основные функции:
1. Разрабатывает тестовые пакеты.
2. Собирает и публикует официальные результаты тестов.
Разработчики тестов отказались от использования стандартных
абсолютных единиц типа MFLOPS или MIPS. Вместо этого используются
собственные относительные единицы SPEC. Результаты «нормализуются» по
отношению к аналогичным результатам на так называемой «эталонной»
машине. Это рабочая станция Sun Ultra 5/10 (процессор UltraSPARC 11 с
тактовой частотой 300MHz). На данной машине прогон всех тестов CPU 2000
(смотри ниже) занимает примерно двое суток.
Также SPEC предлагает и такие основные продукты:
CPU 2000 - тесты вычислительной производительности (ранее
использовался пакет тестов CPU95);
JVM98 - виртуальный тест Java-машины;
HPC96 - тесты для высокопроизводительных систем: приложение
сейсмической
обработки
SPECseis96
(Seismic),
приложение
вычислительной химии SPECchem96 (GAMESS) и приложение
моделирования климата SPECclimate (MM5).
CPU 2000 - это тестовый пакет, разработанный подразделением Open
Systems Group (OPG) корпорации SPEC для оценки производительности
микропроцессоров и вычислительных систем. Этот пакет состоит из двух
групп тестов – CINT 2000 для оценки производительности на целочисленных
операциях и CFP 2000 для оценки производительности на операциях с
плавающей точкой. Буква «C» в названиях тестов означает, что тесты
являются компонентными, в отличие от тестов производительности системы
в целом. Обе группы тестов ориентированы на оценку работы
микропроцессоров, подсистемы кэш-памяти и оперативной памяти, а также
компиляторов. В пакет CINT 2000 входят следующие тесты: 11 тестовых
41
приложений, написанных на языке С, и один тест (252eon) на С++ (см.
табл.1.8.2).
Таблица 7.2. Набор тестов пакета CINT 2000
Название
Краткое описание задачи
164.gzip
Утилита сжатия данных (gzip)
174.vpr
Приложение для расчѐта FPGA-кристаллов
176.gcc
Компилятор С
181.mcf
Приложение для решения задачи потока минимальной
стоимости в сети
186.crafty
Программа для игры в шахматы
197.parser Синтаксический разбор для естественного языка
252.eon
Трассировка лучей
253.perlbmk Интерпретатор языка Perl
254.gap
Вычислительная задача из теории групп
255.vortex Объектно-ориентированная база данных
256.bzip2
Утилита сжатия данных (bzip2)
300.twolf
Задача позиционирования и маршрутизации
В набор CFP 2000 входят 14 тестовых приложений, из которых 6
написано на языке Fortran 77, 4 на языке Fortran 90 и 4 на С++ (см.
табл.1.8.3). Более подробное описание этих задач доступны на веб-сайте
SPEC.
Результаты CPU 2000 представляются в четырѐх вариантах (см.
табл.1.8.4).
Таблица 7.3 Набор тестов пакета CFP 2000
Название
Краткое описание задачи
168.wupwise Задача квантовой хромодинамики
171.swim
Гидродинамическая задача моделирования для "мелкой" воды
172.mgrid
Многосеточная решалка для трѐхмерного потенциального поля
173.applu
Решение параболических/элептических дифференциальных
уравнений
177.mesa
Трѐхмерная графическая библиотека (Mesa3D)
178.galgel
Гидродинамическая задача: анализ колебательной
нестабильности
179.art
Моделирование нейронной сети
183.equake Моделирование землетрясения методом конечных элементов
187.facerec Задача распознавания лиц на графических изображениях
188.ammp
Задача вычислительной химии
189.lucas
Задача теории чисел (проверка простоты)
191.fma3d
Моделирование crush-тестов методом конечных элементов
200.sixtract Моделирование ускорителя элементарных частиц
01.apsi
Моделирование ускорителя элементарных частиц
42
Таблица 7.4. Метрики тестового пакета CPU 2000
Максимальная
Стандартная
Метрика
оптимизация
оптимизация
Время выполнения одной
SPECxx 2000
SPECxx base 2000
итерации теста
Количество итераций за
SPECxx rate 2000
SPECxx base rate 2000
фиксированное время
Здесь хх – это или int, или fp, «base» – это метрика, которая
соответствует компиляции тестовых программ с некоторыми «базовыми»
опциями оптимизации, одинаковыми для всех тестов в тестовом пакете и
такими же, что используются и при компиляции пользовательских
программ. Метрики, в которых отсутствует «base», являются
необязательными и соответствуют наилучшей оптимизации, которую
производитель может обеспечить для каждого конкретного теста. Метрика
типа «rate» позволяет оценить суммарный объѐм вычислений, который
компьютер может выполнить за определѐнное время. То есть, например, на
SMP – системе позволяется запустить несколько копий одного теста и в
качестве результата выдать суммарное количество итераций, выполненное
всеми процессорами за определѐнное фиксированное время. Метрики, в
которых отсутствует «rate», оценивают просто «скорость» вычислений.
Показатели SPEC вычисляются следующим образом:
Например, показатель SPECint 2000 определяется так:
SPECint 2000 = RefTime / MeasuredTime, где
RefTime – время исполнения теста на эталонной машине,
MeasuredTime
– время исполнения на тестируемой машине.
Таким образом, смысл этого показателя – в относительном ускорении
по сравнению с эталонной машиной.
Показатель SPECint rate 2000 вычисляется следующим образом:
SPECint rate 2000 = N (RefTime / MeasuredTime) (606024 / RefJobTime),
где N – число запущенных копий (итераций) теста, 606024 – это число
секунд в сутках, а величина RefJobTime принята равной 9600.
В качестве примера можно привести показатели SPEC для
однопроцессорных систем, являющихся лидерами на 25 мая 2000 года (см.
табл. 1.8.5).
Таблица 7.5. Показатели SPECint однопроцессорных систем
SPECint
SPECint
Система
Процессор
2000
base 2000
Compaq AlphaServer DS20 Alpha 21264A/667MHz
444
424
Compaq AlphaServer ES40
Alpha 21264A/667MHz
433
413
Intel VC820
Pentium 3/1GHz
410
407
Лидерами по показателю SPECfp 2000 являются следующие
однопроцессорные системы (см. табл.1.8.6).
Таблица 7.6. Показатели SPECint однопроцессорных систем
SPECfp
SPECfp
Система
Процессор
2000
base 2000
Compaq AlphaServer DS20E Alpha 21264A/667MHz
577
514
Compaq AlphaServer ES40
Alpha 21264A/667MHz
562
500
Compaq AlphaServer DS20 Alpha 21264/500MHz
422
383
Системы на базе Pentium 3/1GHz по производительности на
операциях с плавающей точкой занимают только 10-е место с показателями
284/273. Таким образом, лидером по тестам CPU 2000 является процессор
Alpha21264A/667MHz.
Лидерами по показателям «rate» одновременно на целочисленных
операциях и операциях с плавающей точкой являются следующие
многопроцессорные системы (см. табл. 1.8.7).
Таблица 7.7. Показатели класса «rate» многопроцессорных систем
Число CFP 2000 CINT 2000
Система
Процессор
ЦП
(rate)
(rate)
HP 9000 Model N4000 PA-8600/552MHz
8
23.0
32.7
HP 9000 Model N4000 PA-8600/552MHz
4
14.4
17.0
SGI 2200
R12000/400 MHz
4
13.2
15.4