Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 03.03.2010 | Доступ: свободный | Студентов: 5353 / 1318 | Оценка: 4.35 / 3.96 | Длительность: 24:14:00
ISBN: 978-5-9963-0267-3
Специальности: Разработчик аппаратуры
Лекция 18:

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

< Лекция 17 || Лекция 18: 12
Аннотация: Цель лекции: изучение методов и средств оценки производительности микропроцессоров и микропроцессорных систем различных классов.
Ключевые слова: критерии выбора, стоимость, надежность, энергопотребление, масштабируемость, тактовая частота, производительность, архитектура, разрядность, суперскалярность, ПО, SIMD, рейтинг, фирма, AMD, процессор, место, Instruction, PER, second, команда, операции, CISC, indicator, processor speed, fixed-point operation, значение, пропускная способность, benchmarking, тестовая программа, LINPACK, CPU, HPC, система линейных уравнений, performance evaluation, micro, CFP, графическая подсистема, rating, SMPS, GCC, тестовый набор, линейное программирование, perform, прикладное программирование, пересылка сообщений, MPP, MPI, specs, ключевой параметр, обработка сигналов, быстродействие, время выполнения, mac, определенность алгоритма, design technology, Texas Instrument, analog device, критерий эффективности, DSP, kernel, TPC-E, transaction processing, кредит, tpi, определение, список, OLTP, сервер, базы данных, tps, AIMS, technology, программное обеспечение, Unix, OS/2, workstation, MIX, mechanical, CAD, GIS, multiuser, файл-сервер, file server, аппаратные средства, переключение контекста, VAX, индекс, параметр, пиковая производительность, многозадачность, память

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

Большое разнообразие представленных на рынке микропроцессоров и систем, построенных на их основе, требует системного подхода к выбору той или иной аппаратной платформы и конфигурации. Критерии выбора определяются конкретными требованиями к системе и базируются на ряде общих требований, предъявляемых к ее характеристикам. К ним относятся стоимость, надежность, энергопотребление, масштабируемость и ряд других, которые важны в тех или иных областях. Но выбор микропроцессора и МПС для любого применения не может обойтись без оценки важнейшего показателя - производительности.

Казалось бы, основной мерой оценки производительности микропроцессора должна выступать его тактовая частота. Однако начиная с некоторого момента развития микропроцессорной техники рост тактовой частоты и производительность микропроцессора начинают идти разными, все больше расходящимися дорогами. На начальном этапе развития, когда частоты различных микропроцессоров не очень различались между собой, главным показателем производительности были архитектура МП, которая во многом определялась именем фирмы-разработчика, и разрядность. Именно они и выносились в название микропроцессора (например, знаменитые I-8080 фирмы Intel или Z-80 фирмы Zilog). С появлением первых 32-разрядных микропроцессоров Intel в их название помимо прочей информации стала вноситься тактовая частота. Трудно сказать, было ли это началом так называемой "войны мегагерц", однако со временем сложилась такая ситуация, что потребитель обращал внимание скорее на рост тактовой частоты, нежели на изменение архитектуры процессоров или технологий их производства.

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

Первой переход от указания тактовой частоты в названии своих микропроцессоров к указанию рейтинга производительности (PR) выполнила фирма AMD. Для своего микропроцессора Athlon XP она ввела PR, определявшийся как реальный уровень производительности в сравнении с конкурирующими процессорами (конечно же, это был прежде всего процессор фирмы Intel - Pentium 4), работающими на более высокой частоте. Введение такой маркировки прежде всего показывало, что компания по-прежнему занимает место на рынке рядом с лидером.

Прежде этому мешало указание именно реальной тактовой частоты процессоров AMD.

MIPS и MFLOPS

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

Однако это весьма расплывчатый показатель. Скорость работы процессора, обычно выражаемая в миллионах операций в секунду (millions of INsTRuctions per second - MIPS ), сильно привязана к его тактовой частоте.

Кроме того, оценка производительности в MIPS существенно зависит от системы команд микропроцессора: одна команда в микропроцессоре одного типа может быть эквивалентна по вычислительной мощности нескольким командам другого МП. К тому же различные операции, особенно в CISC-микропроцессорах, требуют разного времени для их выполнения. Следовательно, MIPS -оценка существенно зависит от того, какие команды принимаются в расчет. Таким образом, MIPS является полезным показателем лишь при сравнении процессоров одного производителя. Такие процессоры должны поддерживать одинаковую систему команд. Кроме того, следует применять одинаковые компиляторы. Существенная слабость MIPS как показателя производительности часто являлась поводом для шутки: MIPS - это аббревиатура выражения "MeanINgless INdicator of Processor Speed" ("бессмысленный показатель скорости процессора").

Аналогичным подходом является измерение производительности работы процессора в миллионах операций с плавающей точкой в секунду (millions of floatINg-poINT operations per second - MFLOPS ). Обычно скорость в MFLOPS вычисляют для смеси операций сложений и умножений с плавающей точкой. Но поскольку микропроцессоры становятся все быстрее и быстрее, значение максимума MFLOPS перестает быть полезным в качестве разумной меры производительности операций с плавающей точкой: ограничивающим фактором становится пропускная способность каналов памяти (насколько быстро данные можно перемещать из процес сора и в процессор).

Тестовые программы

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

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

  1. компоненто-зависимые инструменты (подобные программе LINpack и смесям SPEC cpu для универсальных МП и BDTImark для ЦСП);
  2. средства оценки всей системы, например, набор ТРС для эмуляции коммерческих сред и SPEC hpc для оценки производительности в области высокопроизводительных вычислений; и наконец, 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. В настоящее время действует уже пятая версия этих тестов - SPEC 2006. Одной из главных причин, требующих необходимости регулярного пересмотра тестов SPEC cpu, является рост емкости кэш-памяти современных микропроцессоров. Вследствие этого с течением времени многие тесты из состава SPEC cpu оказываются хорошо локализуемыми в кэше, что для серьезных современных приложений, вообще говоря, не характерно. За счет выпуска новых версий тестов организация SPEC не отстает от новейших тенденций в аппаратных средствах и в разработке компиляторов, не давая производителям "подгонять" свои системы под хорошие результаты тестирования.

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

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

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

  • метрики типа "base" получаются на тестах, которые должны компилироваться так же, как пользователи будут компилировать свои программы, то есть с некоторыми базовыми опциями оптимизации, одинаковыми для всех тестов в тестовом пакете. Другая группа метрик, без приставки "base", соответствует наилучшей оптимизации, которую производитель может обеспечить для каждого конкретного теста;
  • метрики типа "rate" позволяют оценить суммарный объем вычислений, который компьютер может выполнить за определенное время. То есть на SMP-компьютере позволяется запустить несколько копий одного теста и в качестве результата выдать суммарное количество итераций, выполненное всеми процессорами за определенное фиксированное время. В противном случае, на тестах без приставки "rate", оценивается просто "скорость" вычислений.
Таблица 18.1. Тесты, входящие в состав SPECint2006
Тест Язык реализации Область применения
400.perlbench Си Язык программирования Perl V5.8.7
401.bzip2 Си Сжатие
403.gcc Си Компилятор Си
429.mcf Си Комбинаторная оптимизация
445.gobmk Си Игра Го (искусственный интеллект)
456.hmmer Си Поиск по цепочке генома
458.sjeng Си Шахматы (искусственный интеллект)
462.libquantum Си Физика / квантовые вычисления
464.h264ref Си Сжатие видеоданных
471.omnetpp Си++ Дискретное моделирование
473.astar Си++ Алгоритм нахождения пути
483.xalancbmk Си++ Си++ XML-обработка

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

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

Состав тестов SPECINT2006 представлен в табл. 18.1, а тестов SPECfp2006 - в табл. 18.2.

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

Таблица 18.2. Тесты, входящие в состав SPECfp2006
Тест Язык реализации Область применения
410.bwaves Фортран Динамика жидкости
416.gamess Фортран Квантовая химия
433.milc Си Физика: квантовая хромодинамика
434.zeusmp Фортран Физика / Астрофизика
435.gromacs Си/Фортран Биохимия / Молекулярная динамика
436.cactusADM Си/Фортран Физика / Общая теория относительности
437.leslie3d Фортран Гидродинамика
444.namd Си++ Биология / Молекулярная динамика
447.dealII Си++ Анализ конечных элементов
450.soplex Си++ Линейное программирование, оптизации
453.povray Си++ Лучевая трассировка изображений
454.calculix Си/Фортран Структурная механика
459.GemsFDTD Фортран Вычислительная теория электромагнетизма
465.tonto Фортран Квантовая химия
470.lbm Си Гидродинамика
481.wrf Си/Фортран Моделирование погоды
482.sphinx3 Си Распознование речи
< Лекция 17 || Лекция 18: 12
Владислав Салангин
Владислав Салангин

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

Михаил Королёв
Михаил Королёв