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

Обновлено: 30.06.2024

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

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

Однако в зависимости от того, что мы считаем, время может быть определено различными способами. Наиболее простой способ определения времени называется астрономическим временем, временем ответа (response time), временем выполнения(execution time) или прошедшим временем (elapsed time). Это задержка выполнения задания, включающая буквально все: работу процессора, обращения к диску, обращения к памяти, ввод/вывод и накладные расходы операционной системы. Однако при работе в мультипрограммном режиме во время ожидания ввода/вывода для одной программы, процессор может выполнять другую программу, и система не обязательно будет минимизировать время выполнения данной конкретной программы.

Для измерения времени работы процессора на данной программе используется специальный параметр - время ЦП (CPU time), которое не включает время ожидания ввода/вывода или время выполнения другой программы. Очевидно, что время ответа, видимое пользователем, является полным временем выполнения программы, а не временем ЦП. Время ЦП может далее делиться на время, потраченное ЦП непосредственно на выполнение программы пользователя и называемое пользовательским временем ЦП, и время ЦП, затраченное операционной системой на выполнение заданий, затребованных программой, и называемое системным временем ЦП.

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

В большинстве современных процессоров скорость протекания процессов взаимодействия внутренних функциональных устройств определяется не естественными задержками в этих устройствах, а задается единой системой синхросигналов, вырабатываемых некоторым генератором тактовых импульсов, как правило, работающим с постоянной скоростью. Дискретные временные события называются тактами синхронизации (clock ticks), просто тактами (ticks), периодами синхронизации (clock periods), циклами (cycles) или циклами синхронизации (clock cycles).Разработчики компьютеров обычно говорят о периоде синхронизации, который определяется либо своей длительностью (например, 10 наносекунд), либо частотой (например, 100 МГц). Длительность периода синхронизации есть величина, обратная к частоте синхронизации.

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

Важной характеристикой, часто публикуемой в отчетах по процессорам, является среднее количество тактов синхронизации на одну команду - CPI (clock cycles per instruction). При известном количестве выполняемых команд в программе этот параметр позволяет быстро оценить время ЦП для данной программы.

Таким образом, производительность ЦП зависит от трех параметров: такта (или частоты) синхронизации, среднего количества тактов на команду и количества выполняемых команд. Невозможно изменить ни один из указанных параметров изолированно от другого, поскольку базовые технологии, используемые для изменения каждого из этих параметров, взаимосвязаны: частота синхронизации определяется технологией аппаратных средств и функциональной организацией процессора; среднее количество тактов на команду зависит от функциональной организации и архитектуры системы команд; а количество выполняемых в программе команд определяется архитектурой системы команд и технологией компиляторов. Когда сравниваются две машины, необходимо рассматривать все три компоненты, чтобы понять относительную производительность.

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

Опасности некоторых популярных альтернативных единиц измерения (MIPS и MFLOPS) будут рассмотрены в соответствующих подразделах.

Методы оценки производительности ЭВМ разделяются на два больших класса: экспериментальные и теоретические. К первым относятся разнообразные тестовые и измерительные программы, ко вторым – различные математические модели, связанные с применением аналитических и численных методов, а также методов статистического (имитационного) моделирования.

Обе группы методов, как правило, предназначены для получения оценок временных характеристик и производительности ЭВМ, а также изучения влияния на эти характеристики различных параметров ЭВМ.

Экспериментальные методы оценки

Экспериментальные методы широко используются для оценки производительности ЭВМ. Суть их сводится к измерению той или иной характеристики действующей ЭВМ при выполнении на ней какой-либо работы (решении задачи или набора задач). Данные методы позволяют получить непосредственные значения интересующих величин с относительно малыми затратами, так как время измерения обычно невелико (от нескольких секунд до нескольких часов).

Используя экспериментальные методы, следует учитывать, что процесс вычислений на ЭВМ имеет скорее стохастический, чем детерминированный характер (в отдельной ЭВМ – это псевдослучайный процесс, а в сервере, обслуживающем различных клиентов – уже чисто случайный) и получаемые результаты измерений представляют собой либо отдельные реализации случайной величины, либо некоторые усредненные значения.

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

степенью приближенности выполняемой при измерениях вычислительной работы к реальной нагрузке ЭВМ при ее эксплуатации или, как иначе говорят, репрезентативностью измерительной нагрузки;

количеством реализаций (прогонов) выполняемой задачи или теста, по которому производится усреднение оценки.

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

а) использовать в качестве такой нагрузки реальную задачу, которая будет решаться на ЭВМ;

б) написать собственную программу, характер операций в которой близок к желаемому;

в) использовать некоторую стандартную задачу или тестовую программу.

Каждый из этих путей имеет свои достоинства и недостатки.

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

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

Стандартные тестовые программы (более точно название программы для оценки производительности, или benchmark programs / utilities, так как тестирование обычно предполагает просто проверку работоспособности) являются наиболее распространенным вариантом получения характеристик производительности для типовых применений ЭВМ, в особенности для сравнения различных моделей ЭВМ одного класса или близких классов. В частности, такие программы широко используются для оценки характеристик ПЭВМ. Однако общий характер таких программ делает их оценки не слишком близкими к конкретной ситуации. При этом возможны следующие разновидности таких программ:

- программы, оценивающие временные характеристики отдельно взятых устройств ЭВМ: процессора, кэш-памяти, оперативной памяти, жестких дисков, на основе измерения времени выполнения различных операций и передач блоков данных различной длины (например, SiSoft SANDRA, Speed System Test, Dr. Hardware, Everest, и др.). Эти программы дают и общие индексы производительности ЭВМ, однако такие индексы, как правило, можно использовать для сравнения результатов измерений, полученных только с помощью одной и той же программы;

- программы, оценивающие характеристики всей системы в целом для различных типов задач и показывающие относительные индексы производительности памяти (например, ZIFF Davis WinBench, 3DMark, SYSmark и др.). Причем такие программы могут либо предлагать на выбор несколько различных классов задач для оценки: дисковые приложения, графику, мультимедийные и игровые пакеты, либо быть узконаправленными, проводящими оценку только для одного типа задач;

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

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

Теоретические методы оценки

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

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


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


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

При представлении ЭВМ в виде системы массового обслуживания (СМО) процессору, отдельным ЗУ, контроллерам памяти и различных устройств, а при необходимости и трактам передачи (шинам) сопоставляются обслуживающие приборы, а командам процессора, обращениям к ЗУ, контроллерам, заявкам на циклы передачи по шинам – запросы на обслуживание. Сама модель при этом представляется взаимосвязанной совокупностью обслуживающих приборов – устройств ЭВМ, связи между которыми соответствуют запросам на обращения, передачи и др.

На рис. 4 приведена одна из возможных моделей СМО для ПЭВМ, в которой в качестве обслуживающих приборов рассматриваются видеоадаптер, процессор, южный мост (контроллер ввода-вывода) и оперативная память (с контроллером памяти или системной шины). Запросы на обслуживание поступают в видеоадаптер (вывод новых изображений), процессор (выполнение новых задач или процессов) и контроллер ввода-вывода (передача данных для жестких дисков, CD-ROM, сетевых карт и пр.). При этом запросы могут поступать быстрее, чем их успевают обслужить соответствующие узлы, которым для обслуживания требуется также участие оперативной памяти. Поэтому к обслуживающим приборам могут образовываться очереди, а сами они формируют запросы на обслуживание к оперативной памяти, которые также образуют очередь к ней на обслуживание. Причем системы, в которых одни обслуживающие приборы формирую запросы к другим, называют многофазными СМО.


Рис.4. Модель основных блоков ПЭВМ в виде системы массового обслуживания

В теории массового обслуживания исследовано поведение моделей различных СМО для разных потоков запросов, законов распределения времени обслуживания и различных дисциплин обслуживания (с приоритетами, фиксированным временем пребывания в очереди и др.). Для ряда случаев получены аналитические решения и соответствующие формулы для вычисления среднего времени пребывания запроса в системе, среднего времени его ожидания в очереди, среднего количества запросов в очереди и других аналогичных характеристик, в частности дисперсий названных величин.

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

простейший (пуассоновский) поток запросов на обслуживание;

экспоненциальный закон распределения времени обслуживания в обслуживающих приборах;

предположение о независимости Л.Клейнрока для многофазных СМО, смысл которого сводится к отсутствию влияния обслуживающего прибора на характер закона распределения запросов на его выходе.

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

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

Одним из наиболее значимых для практики результатов, полученных с помощью таких моделей, можно считать тот факт, что при загрузках систем (обозначаемых через  = /) более 0,8 – 0,85 имеет место резкий рост задержек в системе. Поэтому, планируя структуру и состав системы памяти, следует стараться обеспечить резерв пропускной способности трактов передачи данных и запоминающих устройств.

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

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

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

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

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

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

Описание моделируемых систем в виде сетей массового обслуживания влечет за собой использование при моделировании метода “особых состояний”. Этот метод заключается в определении момента tсс i +1 , соответствующего смене состояний сети, по известным характеристикам текущего состояния и процессов обслуживания в отдельных подсистемах сети (иначе говоря, принцип “асинхронности” моделирования), т.е.

tсс i +1 = tсс i + minj(tj ltсс i ), jJ, li,

где tсс i – момент времени, соответствующий приходу сети в i-е состояние; tj l – момент окончания текущего процесса обслуживания, выполняемого j-й подсистемой сети, начатого в момент прихода сети в некоторое l-е состояние и не законченного до наступления момента tсс i ; J – множество всех подсистем сети.

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

Единицы измерения производительности компьютера. Определение времени. Дискретные временные события. Стандарты в области оценки производительности. Виды тестов производительности процессора, файловой системы, сети. Тестовые смеси в прикладных областях.

Рубрика Программирование, компьютеры и кибернетика
Вид презентация
Язык русский
Дата добавления 25.09.2017
Размер файла 350,4 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

HTML-версии работы пока нет.
Cкачать архив работы можно перейдя по ссылке, которая находятся ниже.

Подобные документы

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

презентация [937,6 K], добавлен 11.12.2013

Оценка вариантов подключения Интернета для малой домашней PC сети и производительности приложения. Средства анализа и оптимизации локальных сетей. Влияние топологии связей и производительности коммуникационных устройств на пропускную способность сети.

дипломная работа [6,9 M], добавлен 12.09.2012

Однопроцессорные вычислительные системы не справляются с решением военно-прикладных задач в реальном времени, поэтому для повышения производительности вычислительных систем военного назначения используются многопроцессорные вычислительные системы (МВС).

реферат [70,1 K], добавлен 30.05.2008

курсовая работа [2,7 M], добавлен 08.07.2012

Аппаратные средства построения виртуальной частной сети (VPN), ее программные реализации. Алгоритмы и режимы шифрования в защищенных каналах, оценка их производительности. Создание модели функционирования сети. Тестирование платформы 1С: Предприятие 8.1.

дипломная работа [2,5 M], добавлен 26.07.2013

Разработка программы на языке Ассемблер для определения типа центрального процессора и его производительности. Основные этапы определения любого существующего Intel-совместимого процессора. Тактовая частота процессора, алгоритм и листинг программы.

курсовая работа [47,6 K], добавлен 26.07.2014

Разработка схемы организации связи объектов транспортной сети. Расчет характеристик резидентных шлюзов доступа (RAGW). Обоснование выбора типов интерфейсов. Расчет производительности коммутаторов транспортной сети и производительности Softswitch.

Для представления процесса обработки данных используется специальный математический аппарат, который называется алгебройлогики. С помощью этого аппарата описывается логическая схема ЭВМ, которая затем воплощается в виде электрической схемы.

Основное понятие алгебры логики – это высказывание. Высказывание – это законченное предложение, о котором можно сказать, что его содержание истинно (равно 1), либо ложно (равно 0). Существует несколько логических операций, наиболее важные из которых: конъюнкция (логическое И), дизъюнкция (логическое ИЛИ), отрицание (логическое НЕ)
(табл. 2.3).

Элементарные логические операции

x y ИЛИ И НЕ х

Значения 0 или 1 означают отсутствие или наличие электрического сигнала, соответственно. Электрические схемы, реализующие элементарные логические операции, называются логическимиэлементами и исполняются на полупроводниковых приборах (диоды, транзисторы и т.д.).

Конструкция ЭВМ, а, следовательно, организация процесса обработки однозначно описывается совокупностью логических элементов.

Функциональное строение ЭВМ

ЭВМ любой архитектуры состоит из следующих функциональных частей:

§ запоминающее устройство (ЗУ);

§ устройство управления (УУ);

§ арифметико-логическое устройство (АЛУ);

§ устройство ввода-вывода (УВВ).

Запоминающее устройство служит для хранения программ и данных. Логически запоминающее устройство разделяется на единицы определённой ёмкости (например, байты).

Задачей устройства управления является выборка кода команды из запоминающего устройства и дешифрация команды. Код команды – это целое число, в соответствие которому поставлена некоторая комбинация управляющих электрических сигналов, посылаемых другим устройствам. Определение данной комбинации называется дешифрацией команды.

Арифметико-логическое устройство обрабатывает алгоритмы, реализованные в виде программы.

Устройство управления и арифметико-логическое устройство в конкретных ЭВМ реализуются в виде центральногопроцессора(ЦП) [processor (CPU)].

Устройство ввода-вывода служит для передачи данных на внешние устройства.

Эти четыре составные части ЭВМ соединены друг с другом посредством системной шины и шины управления. Системная шина служит для передачи данных и команд. Данные и команды выбираются из запоминающего устройства по определённому адресу, который также передаётся по системной шине отдельно от данных. Поэтому системная шина состоит из шины данных и шины адреса. Шина управления, как следует из её названия, используется для передачи управляющих сигналов.

Каждая машинная команда выполняется в 5 этапов:

§ считывание кода команды из памяти;

§ дешифрация кода команды;

§ запись результатов в память.

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

Понятие программы

Решение задачи на ЭВМ – это процесс получения результатных данных на основе обработки исходных с помощью программы.

Программа[program, routine] – это последовательность команд, понятных ЭВМ, или машинных команд. Машинныекоманды[computer instruction] представляют собой целые числа, принимая которые, ЭВМ производит строго определённые действия. Набор этих команд зависит от конкретной ЭВМ и носит название машинногоязыка[computer (machine) language]. Машинные команды, как и данные, хранятся в файлах, однако, файлу с командами можно передать управление компьютером. Такие файлы также называют программами.

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

Пусть в некотором файле записана следующая последовательность чисел:

B8 05 03 BB-00 00 CD 16-CD 20

Очевидно, что размер файла – 10 байт. Если запустить этот файл на исполнение, то клавиатура будет работать быстрее. Всего в данной последовательности закодировано четыре машинных команды. Например, команда CD означает вызов специальной функции, а операнд 16 или 20 означает номер вызываемой функции.

Архитектура ЭВМ

Архитектура ЭВМ– это способ обработки данных (способ организации вычислительного процесса), который реализуется аппаратурой ЭВМ. Архитектура ЭВМ описывает некоторую конструкцию ЭВМ, независимую от строения решаемой задачи, то есть любая алгоритмизируемая задача может быть решена на ЭВМ, построенной в соответствии с данной архитектурой. Однако эффективность реализации алгоритма существенно зависит от архитектуры. Очевидно, что для решения задач гидроаэродинамики и для бухгалтерских расчётов требуются различные алгоритмы. Поэтому для каждой конкретной архитектуры может быть выделен круг прикладных задач, для решения которых использование данной архитектуры предпочтительно.

Понятие архитектуры ЭВМ используется для проведения сравнительного анализа возможностей ЭВМ.

В 1946 г. американским учёным Дж. фон Нейманом был предложен принцип организации вычислительного процесса, который до сих пор реализуется в большинстве современных ЭВМ.

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

Для представления вычислительного процесса используются понятия потока данных и потока команд, введённые в 1966 г. американским учёным М. Флинном. Поток команд представляет собой последовательность машинных команд, поступающих из ЗУ к УУ и далее после дешифрации к АЛУ. Поток данных представляет собой последовательность данных, которые обрабатываются АЛУ и считываются из ЗУ. В соответствии с этим вычислительный процесс архитектуры фон Неймана можно представить рис. 2.6.

Поскольку в такой архитектуре имеются только один поток команд и только один поток данных, то она получила название архитектуры SISD[Single Instruction Single Data].

Уже в 50-х гг. были начаты работы по разработке такой архитектуры ЭВМ, которая позволяла в той или иной мере оптимизировать вычислительный процесс.

Основная идея этой оптимизации заключается в совмещении во времени операций по обработке данных. Архитектура ЭВМ, вычислительный процесс которой организован таким образом, называется параллельной.

Рис. 2.6
Архитектура SISD

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

Это несвязанность данных, обрабатываемых в одном потоке команд, и независимость потоков команд. В соответствии с этим можно выделить несколько так называемых уровней параллелизма (рис. 2.7), для каждого из которых будут применяться свои приёмы совмещения операций.

Рис. 2.7
Уровни параллелизма

Несвязанность потоков данных порождает три нижних уровня параллелизма. Верхние три уровня обусловлены несвязанностью команд, и реализация параллельной обработки достигается использованием нескольких процессоров.

Рассмотрим простую программу, состоящую из двух команд:

Эти команды используют несвязанные данные. Поэтому их можно было бы выполнять параллельно. Выполнение каждой команды осуществляется в течении 5 фаз, например для команды a: a1, a2, a3, a4, a5. Предположим, что каждая фаза операции выполняется за один такт. Тогда вычислительный процесс фон Неймана будет иметь вид:

Такт
a1
a2 a1
a3 a2 a1
a4 a3 a2 a1
a5 a4 a3 a2 a1
a5 a4 a3 a2
a5 a4 a3
a5 a4
a5
b1

Очевидно, что на каждую команду приходится по 9 тактов.

Чтобы интенсифицировать поток команд из памяти при выполнении серии несвязанных операций, была разработана конвейерная[pipeline] архитектура. Согласно этой архитектуре устройство управления выполняется в виде последовательности 5 независимо функционирующих устройств - каскадов, каждое из которых предназначено для выполнения определённой фазы команды.

Рассмотрим предыдущий пример. Тогда вычислительный процесс в конвейерной архитектуре будет иметь вид:

Такт
a1
a2 a1
a3 a2 a1
a4 a3 a2 a1
a5 a4 a3 a2 a1
b1 a5 a4 a3 a2
b2 b1 a5 a4 a3
b3 b2 b1 a5 a4
b4 b3 b2 b1 a5
b5 b4 b3 b2 b1

Легко подсчитать, что на выполнение 4 команд потребуется 24 такта или по 6 тактов на команду. Если число команд станет бесконечным, то на каждую команду будет приходиться по 5 тактов.

Чтобы сократить время обработки данных, можно применить другой очевидный способ: совместить выполнение двух или более арифметических операций во времени. Для этого нужно просто иметь два или более арифметических устройств. Такая архитектура называется суперскалярной [superscalar].

Архитектура фон Неймана, конвейерная и суперскалярная архитектуры реализуются в рамках архитектуры SISD. Большинство современных ЭВМ построено по такому принципу.

Решение многих задач на ЭВМ связано обработкой данных векторного или матричного типа. В таких задачах будут присутствовать программные фрагменты типа:

for i=1 to N : a[i]=b[i]+c[i] : next i

Причём число N может быть очень велико (сотни тысяч и более). Использование ЭВМ архитектуры SISD становится неэффективным.

Для решения подобных задач применяются ЭВМ векторной [vector]архитектуры. В состав такой ЭВМ входят одно устройство управления и несколько арифметико-логических устройств, которые реализуются в составе одного векторного процессора[array (vector) processor].

Такая архитектура именуется также как архитектура SIMD[Single Instruction Multiple Data] (рис. 2.8).


Рис. 2.8 Архитектура SIMD

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

Рассмотрим программу, в составе которой имеется следующий код:

for i=1 to 64: a[i]=b[i]+c[i] : next i

Если в составе векторного процессора имеется 64 арифметических устройства, то для выполнения этой части программы потребуется столько же времени, как и для выполнения команды типа: a = b+c. То есть векторная ЭВМ с такого рода задачами будет работать в 64 раза быстрее, чем ЭВМ архитектуры SISD.

Архитектуры SISD и SIMD объединяются в класс однопроцессорныхархитектур.

Если задача может быть подразделена на несколько независимых заданий, то логично использовать для её выполнения несколько самостоятельных устройств управления или несколько арифметических устройств, то есть многопроцессорную ЭВМ. Многопроцессорная обработка данных применяется для реализации самых верхних уровней параллелизма
(рис. 2.7).

Класс многопроцессорныхархитектур также может быть сведён к двум видам: MISD-архитектура и MIMD-архитектура.

В архитектуре MISD[Multiple Instruction Single Data] одни и те же данные обрабатываются большим числом параллельных процессов. Такой архитектуре соответствует обычная локальная сеть персональных ЭВМ, которая работает с общей базой данных. ЭВМ, которые соответствуют MISD-архитектуре, не существует.

Архитектура MIMD[Multiple Instruction Multiple Data] предполагает наличие нескольких устройств управления и нескольких арифметико-логических устройств и может выступать в зависимости от решаемой задачи также как SISD или SIMD архитектура.

Производительность ЭВМ

Основа для сравнения ЭВМ различных типов – это производительность ЭВМ, то есть время, которое затрачивает ЭВМ на выполнение некоторого объёма работы.

Самую точную практическую оценку производительности конкретной ЭВМ можно получить лишь из времени работы реальной программы, для выполнения которой предназначена данная ЭВМ.

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

В качестве теоретической оценки производительности используется число CPI, которое измеряется как среднее число тактов, приходящихся на одну машинную команду. Так как для разных команд требуется разное число тактов, то данная оценка относится к некоторой средней машинной команде.

Другой простой (и самой неточной) характеристикой производительности является число MIPS [Million Instructions Per Second], равное числу миллионов команд, выполняемых процессором за секунду. В общем случае MIPS определяется как отношение количества команд в программе ко времени её выполнения:

где - время такта, [микросек].

Рассмотрим ЭВМ RS/6000 фирмы IBM, которая состоит из четырёх параллельных устройств, одно из которых обеспечивает выполнение двух команд за такт, остальные выполняют одну команду за такт. Следовательно, в идеале эта ЭВМ будет выполнять за такт 5 команд, то есть CPI = 0,2. Тактовая частота составляет 30 МГц. Тогда

MIPS = 1 / (0,2 * 0,0333) = 150,15.

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

Для оценки производительности ЭВМ, предназначенных для решения научно-технических задач, в которых существенно используется плавающая арифметика, применяется оценка по числу MFLOPS [Million Floating Point Operations Per Second], равному числу миллионов плавающих операций, выполняемых за секунду. Эта оценка гораздо более точна, чем оценка по MIPS, но справедлива только для оценки возможностей ЭВМ при работе с плавающими числами.

Производительность современных суперЭВМ достигает десятков GFLOPS. Производительность ПЭВМ имеет порядок десятков MFLOPS.

Другие способы оценки производительности основаны на использовании специально подобранных тестовых задач. Наиболее известными и употребительными являются тесты SpecInt и SpecFp. Эти тесты предложены в 1988 г. организацией SPEC (Systems Performance Evaluation Cooperative), и представляют собой набор из 14-тестов для проверки быстродействия процессора. Быстродействие ЭВМ определяется числом SPECmark. За единицу приняты характеристики ранее широко распространённой ЭВМ VAX11/780. В других единицах производительность этой ЭВМ приблизительно оценивается в 1 MIPS. Поэтому можно сказать, что 1 SPECmark равен 1 MIPS. Тест SpecInt даёт оценку производительности на целочисленных операциях, а тест SpecFp на операциях с вещественными числами. Другой широко известный набор тестов - LINPACK служит для оценки эффективности процессора при обработке больших потоков вещественных чисел. Основу теста составляют программы из библиотеки, созданной на языке Fortran в 1976 г. для решения задач линейной алгебры. Результат измеряется в MFLOPS.


Оглавление

  • Введение
  • 1. Основные понятия
  • 2. Производительность компьютеров и её оценка

Приведённый ознакомительный фрагмент книги Организация ЭВМ и периферийные устройства предоставлен нашим книжным партнёром — компанией ЛитРес.

2. Производительность компьютеров и её оценка

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

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

2.1. Показатели производительности

Различают следующие показатели производительности:

1. Пиковая — максимально достижимая производительность процессорной подсистемы компьютера, включающей процессор, кэш — и оперативную память.

2. Номинальная — средняя производительность процессорной подсистемы компьютера.

3. Системная — средняя производительность всей аппаратно-программной системы ПК в целом, т.е. с учётом обмена данными с жёстким диском, видеосистемой, и другими внешними устройствами, взаимодействия с ОС.

4. Эксплуатационная — производительность компьютера на реальной рабочей нагрузке, с учётом конкретных используемых приложений, например текстовых процессоров, систем автоматизации проектирования, компиляторов и др.

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

2.2. Методы определения показателей производительности

2.2.1. Пиковая производительность

Пиковая производительность — производительность процессорной подсистемы компьютера при выполнении коротких команд, т.е. команд, не выполняющих обращений к оперативной и кэш-памяти. Такие команды обычно связаны с выполнением различных регистровых операций (например, инкремент регистра INC AX, пересылка данных MOV AX, BX) и могут выполняться за один цикл работы процессора.

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

2.2.2. Номинальная производительность

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

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

В качестве абсолютных используются следующие единицы:

• количество миллионов инструкций (команд) в секунду, MIPS (Million Instructions Per Second);

• количество операций в секунду над числами с плавающей точкой, FLOPS (FLoating-point Operations Per Second), а также производные единицы MFLOPS, GFLOPS, TFLOPS, PFLOPS и др.

Для оценки номинальной производительности широко используется тестовый пакет SPEC CPU от фирмы SPEC (Standard Performance Evaluation Corporation) 3 . Пакет вычисляет две оценки — SPECint и SPECfp, представляющие целочисленные вычисления и вычисления над числами с плавающей точкой соответственно.

Тест SPECint использует универсальные наборы команд над числами с фиксированной точкой и сбалансирован по типам операций, глобальных и локальных переменных и констант в результате статистического исследования и усреднения по большому числу реальных программ (архивация, компиляция с С, комбинаторная оптимизация, искусственный интеллект, игра в шахматы, сжатие видео). Таким образом, тест фактически оценивает производительность процессорной подсистемы без учёта математического сопроцессора.

Тест SPECfp использует базовые арифметические команды над числами с фиксированной и плавающей точками одинарной и двойной точности с равновероятным распределением команд, операции вычисления тригонометрических функций, логарифмов и др. (распознавание речи, уравнение Максвелла, вычисление 3-мерных моделей в гидравлике, моделирование биомолекулярных систем, имитация отжига, симплес-метод).

2.2.3. Системная производительность

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

Одним из известных тестов системной производительности является Business Winstone 4 . Тест Winstone измеряет среднюю производительность компьютера при выполнении популярных офисных Windows — приложений с учётом величины занимаемого этими приложениями сектора рынка (текстовые процессоры, электронные таблицы, системы управления базами данных, программы деловой графики, издательские системы и т.д.). Результаты теста Winstone представляются в виде индекса производительности относительно базового ПК.

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

Популярным тестом системной производительности является также пакет SYSmark. Он широко используется специалистами по информационным технологиям, производителями компьютерного оборудования, аналитиками и журналистами. Тесты SYSmark SE разделены на два сценария: создание интернет-контента и офисная производительность. В тесте создания интернет-контента можно выделить три тестовые группы: 3D-графика, 2D-графика и web-публикация. Сценарий офисной производительности также разделён на три тестовые группы: связь (электронная почта, календарь и просмотр web-страниц), создание документов и анализ данных. Приложения запускаются не последовательно, одно за другим (как в предыдущих версиях), а одновременно, и в процессе прохождения теста осуществляется переключение между ними, что точнее соответствует реальным условиям типичной офисной работы.

2.2.4. Эксплуатационная производительность

Эксплуатационная производительность — производительность компьютера (либо его компонента или подсистемы) при выполнении конкретных приложений. Так, например, если компьютер предполагается использовать преимущественно для решения задач автоматизации проектирования, то целесообразно протестировать его тестами AutoCAD, которые интегрально оценивают производительность ПК на этой нагрузке. Соответственно оценивается производительность тестами С Сomplier (тест компиляции с языка Си), Adobe Photoshop (тест фотоэффектов программы PhotoShop), текстовых процессоров (загрузка, прокрутка, печать документов, поиск/замена фрагментов текста), Quake (игровой тест) и т.д.

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

2.3. Производительность процессоров

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

Для измерения производительности своих 32-разрядных процессоров фирма Intel в 1992 г. предложила следующую единицу: индекс относительной производительности микропроцессоров Intel, называемый iCOMP Index (Intel COmparative Microprocessor Performance Index).

В 1996 г. была введена новая единица — iCOMP Index 2.0, ориентированная на Pentium (MMX) — процессоры. При вычислении этого индекса полностью исключены 16-битные операции и добавлен мультимедийный тест (≈20 %).

Читайте также: