Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к экзамену,3 лабы(4 вар) / то чего не хватает_2.doc
Скачиваний:
112
Добавлен:
10.05.2014
Размер:
683.01 Кб
Скачать

8.2. Оценка производительности микропроцессоров на основе бэнчмарковских программ. Тестовая программа Linpack. Тестовые пакеты specCpu, bdti. Тестовые программы

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

Существует три вида тестовых программ:

  1. компоненто-зависимые инструменты (подобные программе LINpack и смесям SPECcpu для универсальных МП и BDTImark для ЦСП);

  2. средства оценки всей системы, например, набор ТРС для эмуляции коммерческих сред и SPEChpc для оценки производительности в области высокопроизводительных вычислений; и наконец, 3) программы, разработанные пользователем.

Тестовая программа liNpack

LINpack является одной из первых тестовых программ, принятых IT-сообществом на вооружение. Она, так же как и при измерениях производительности в MIPS и MFLOPS, измеряет время и количество операций, но делает это при выполнении конкретной практической задачи: решении плотной системы линейных уравнений методом исключения Гаусса.

Существует несколько версий LINpack, различающихся по размеру системы линейных уравнений, которые они решают, а также по числовой точности и основным нормам для тестирования. Наиболее часто применяли версию с матрицей 100 х 100, с результатами двойной точности, с компиляцией текста на Фортране с запретом оптимизации.

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

Когда кэш-память микропроцессоров увеличилась настолько, что смогла полностью вмещать все данные тестовой программы, оценки, получаемые с помощью LINpack 100 х 100, перестали быть полезными: структуры данных для всей программы составляют только 320 Кбайт.

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

Тесты SPECcpu

В конце 1980-х годов был сформирован Консорциум по оценке производительности систем (Systems Performance Evaluation Cooperative - SPEC). SPECвыполняет две основные функции:

  • разрабатывает тестовые пакеты;

  • собирает и публикует официальные результаты тестирования.

Членами SPEC являются все ведущие в области производства микропроцессоров, компьютеров и программного обеспечения компании (всего свыше 40): Advanced Micro Devices (AMD), Compaq, Hewlett Packard, IBM, Intel, Microsoft, Sun Microsystems и другие.

Первая тестовая программа SPEC для микропроцессора была названа SPEC89. В настоящее время действует уже пятая версия этих тестов -SPEC2006. Одной из главных причин, требующих необходимости регулярного пересмотра тестов SPECcpu, является рост емкости кэш-памяти современных микропроцессоров. Вследствие этого с течением времени многие тесты из состава SPECcpu оказываются хорошо локализуемыми в кэше, что для серьезных современных приложений, вообще говоря, не характерно. За счет выпуска новых версий тестов организация SPEC не отстает от новейших тенденций в аппаратных средствах и в разработке компиляторов, не давая производителям "подгонять" свои системы под хорошие результаты тестирования.

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

Тестовый пакет SPECcpu предназначен для оценки производительности микропроцессоров и вычислительных систем. Он состоит из двух групп тестов: CINTcpu для оценки производительности на целочисленных операциях и CFPcpu для оценки производительности на операциях с плавающей точкой. Буква "C" в названиях тестов означает, что тесты являются "компонентными" (component-level), в отличие от тестов производительности системы в целом. Группы тестов CINT и Cfp ориентированы на оценку работы микропроцессоров, подсистемы кэш-памяти и оперативной памяти, а также компиляторов. Эти тесты не имеют отношения к оценке производительности сети, дисков или графической подсистемы.

Результаты тестов представляются в четырех вариантах ("метриках"), определяемых при различных способах компиляции программ и организации вычислений:

  • метрики типа "base" получаются на тестах, которые должны компилироваться так же, как пользователи будут компилировать свои программы, то есть с некоторыми базовыми опциями оптимизации, одинаковыми для всех тестов в тестовом пакете. Другая группа метрик, без приставки "base", соответствует наилучшей оптимизации, которую производитель может обеспечить для каждого конкретного теста;

  • метрики типа "rate" позволяют оценить суммарный объем вычислений, который компьютер может выполнить за определенное время. То есть на SMP-компьютере позволяется запустить несколько копий одного теста и в качестве результата выдать суммарное количество итераций, выполненное всеми процессорами за определенное фиксированное время. В противном случае, на тестах без приставки "rate", оценивается просто "скорость" вы числений.

Разработчики тестов SPECcpu отказались от использования стандартных абсолютных единиц типа MFLOPS или MIPS. Вместо этого используются собственные относительные единицы SPEC. Результаты "нормализуются" по отношению к аналогичным результатам на так называемой "эталонной" машине. Для тестов SPECcpu2006 это рабочая станция SunULTRa/296 МГц. На данной машине прогон всех тестов SPECcpu2000 занимает примерно двое суток.

Тестовые наборы SPECcpu состоят из нескольких независимых тестовых программ, каждая из которых дает отдельный показатель производительности. Для усреднения результатов по отдельным тестам в данном тестовом наборе используется среднее геометрическое от нормализованных результатов всех тестов.

При переходе от тестов SPECcpu2000 к тестам SPECcpu2006 в их составе произошло резкое увеличение доли программ на С++ (с одной до трех). Более того, четыре программы на С++ (из 17) появились даже в SPECfp2006. И хотя Фортран в SPECfp2006 остался основным языком, его доля существенно уменьшилась.