• Оценка современных компьютеров – «Узкие места» современных ЭВМ – Оценка производительности

advertisement
•
•
•
•
Оценка современных компьютеров
– «Узкие места» современных ЭВМ
– Оценка производительности
– Оценка эффективности
Методы повышения производительности вычислительных систем
– Методы повышения быстродействия компьютеров
– Формы параллелизма
Классификация вычислительных систем
– Флинна
– Хокни
– Фенга
– Дункана
– Шнайдера
Примеры реализации принципов параллелизма и конвейеризации
– Организация мультипроцессорных и мультикомпьютерных систем
– Основные классы современных параллельных компьютеров
– Языки параллельного программирования
1
Основные причины возникновения узких мест в компьютере
• состав, принцип работы и временные
характеристики арифметико-логического
устройства;
• состав, размер и временные характеристики
устройств памяти;
• структура и пропускная способность
коммуникационной среды;
• компилятор, создающий неэффективные коды;
• операционная система, организующая
неэффективную работу с памятью, особенно
медленной.
2
Производительность как вид эффективности
вычислительных систем
Под эффективностью системы понимается соответствие системы
своему назначению или соответствие поведения (функционирования)
системы, обеспечивающее достижение цели, для которой она
применяется.
виды эффективности
производительность
отказоустойчивость
надежность
3
Производительность как вид эффективности
вычислительных систем
Производительность – вид эффективности вычислительной системы,
определяющий ее вычислительную мощность через количество
вычислительных услуг, обеспечиваемых системой в единицу
времени.
Производительность
эффективность системы
для конкретного применения
внутренняя эффективность
системы
4
Виды производительности
Техническая производительность устройства – это количество
операций, которое это устройство способно выполнить в единицу
времени.
Совокупность
технических
производительностей
устройств,
входящих
в
состав
системы,
называют
технической
производительностью вычислительной системы.
Техническая производительность характеризует лишь потенциальные
возможности устройства, которые на самом деле не могут быть
использованы полностью.
5
Виды производительности
Комплексная производительность показывает, какая часть от
технической производительности каждого устройства может быть
использована при их совместной работе, при условии максимальной
загрузки, т.е. сбалансированность технических производительностей
устройств.
Производительность, проявляемую вычислительной системой при
совместной работе прикладной программы, программного
обеспечения данной вычислительной системы и ее аппаратуры
называется
системной
производительностью.
Системная
производительность зависит от каждого из трех основных
компонентов вычислительной системы: рабочей нагрузки, а также
физической и логической сред.
Системная производительность дает полную характеристику
вычислительной системе как комплекса программных и аппаратных
средств.
6
Цели и основные этапы анализа
производительности
Методология
оценки
производительности
последовательности этапов.
состоит
из
Сначала производиться выбор меры производительности, то есть тех
параметров, по которым будет вычисляться оценка.
После этого определяется зависимость производительности от
структуры анализируемой системы и ее рабочей нагрузки.
Строится модель рабочей нагрузки и модель вычислительной
системы.
С помощью моделей рабочей нагрузки и вычислительной системы
строится модель производительности с выбранными параметрами
рабочей нагрузки и вычислительной системы.
7
Основные задачи оценки производительности
Сравнительная оценка существующих систем.
Оптимизация.
Прогнозирование производительности.
8
Описание рабочей нагрузки
Без хорошего знания рабочей нагрузки, анализ и прогноз производительности в лучшем случае будут неточны.
Основные функции модели рабочей нагрузки:
 предоставить корректную, адекватную и представительную
характеристику прикладного процесса для прогнозирования его
поведения на классе систем настолько широком, насколько это
возможно;
 обеспечить управляемые и воспроизводимые эксперименты при
оценке производительности;
 сократить настолько, насколько это возможно
анализируемых данных без ущерба точности анализа;
количество
 предоставить данные в форме, пригодной для их использования
моделью системы.
9
Виды моделей рабочей нагрузки
смеси команд;
эталоны;
стохастические модели;
трассы.
Смеси команд:
Заключается в выборе последовательности команд машины, "типичной" с
точки зрения некоторого приложения. "Типичность" определяется через
функцию распределения встречаемости команд в программе для
определенного приложения. Эту функцию строят методами математической
статистики, например, с помощью кластерного или регрессионного анализов.
Эталоны:
Эталоны – это образцы использования ресурсов системы прикладным
процессом, т.е. эталоны рабочей нагрузки для определенной вычислительной
системы или ее прототипа. В качестве эталонов обычно выступают
отдельные программы или наборы программ. Эталоны могут быть
построены из уже существующих программ. Способы построения эталонов
могут быть самыми разными: от случайного выбора программ на входе
системы до тщательного подбора каждого оператора в эталоне.
10
Виды моделей рабочей нагрузки
смеси команд;
эталоны;
стохастические модели;
трассы.
Стохастические модели рабочей нагрузки:
Рабочую нагрузку описывают с помощью случайных величин, которые
представляют запросы на ресурсы. Распределения этих случайных величин
подбираются на основе статистического анализа результатов измерений
потока запросов на соответствующие ресурсы реально действующей
вычислительной установки.
Недостатки:
 данные, собираемые на действующей установке, могут нести на себе отпечаток той
системы, на которой они собирались (системная зависимость);
 измерительная система, используемая для сбора данных, может искажать
собираемые данные настолько, насколько она сама использует ресурсы системы
(оценить это влияние практически не возможно);
 трудно охватить взаимосвязи между разными характеристиками потока запросов,
представленных разными случайными величинами (используется гипотеза о
статистической независимости случайных величин, что является не корректным).
Использование данного подхода очень ограничено.
11
Виды моделей рабочей нагрузки
смеси команд;
эталоны;
стохастические модели;
трассы.
Трассы:
Рабочую нагрузку представляют в виде множества упорядоченных записей,
содержащих данные о работе программ. Эти данные собирают с помощью
специальных измерительных средств, а затем, после специальной обработки,
используют как модель рабочей нагрузки. Главным достоинством этого
подхода является то, что он сохраняет все взаимозависимости между
действиями, как отдельной программы, так и комплекса программ.
Недостатки:
 при измерениях всегда существует вероятность искажения измеряемых данных;
 измерения носят системно-зависимый характер;
 создание программ предварительной обработки трассы и подготовки ее к
использованию моделью системы очень трудоемко.
Применялся только к программам в нераспределенной вычислительной
среде.
12
Модели системы
структурные модели;
функциональные модели;
модели производительности.
Структурные модели характеризуют составные части системы, взаимосвязи и
интерфейсы между ними. Функциональные модели описывают поведение
системы в форме пригодной для их исследования математическими
методами.
Модели
производительности
определяют
зависимость
производительности от таких параметров системы как рабочая нагрузка,
структура и т.п.
Структурные модели вычислительных систем:
Строятся с помощью различного рода структурных диаграмм, использующих
теорию графов. Эти модели описывают топологию информационных и
управляющих потоков в системе, но не определяют их взаимное влияние
друг на друга.
13
Функциональные модели вычислительных систем
структурные модели;
функциональные модели;
модели производительности.
Делятся на четыре группы:
 графовые модели;
 конечные автоматы;
 сети;
 модели с очередями.
Графовые модели:
Теория графов широко используется при моделировании как программных,
так и аппаратных компонентов вычислительных систем. В этих моделях
вершины представляют отдельные программы, модули, либо операторы, а
дуги – передачу управления между ними. Иногда дуги соответствуют
фрагментам программ, а вершины – это точки ветвления, либо передачи
управления.
Даже для небольших программ в несколько десятков операторов
пространство всевозможных состояний достигает таких размеров, что работа
с ним требует значительных вычислительных затрат.
14
Функциональные модели вычислительных систем
структурные модели;
функциональные модели;
модели производительности.
Делятся на четыре группы:
 графовые модели;
 конечные автоматы;
 модели с очередями;
 сети.
Конечные автоматы:
В моделях, построенных на основе теории автоматов, состояние системы
строят из локальных состояний отдельных ее компонентов, что позволяет
достаточно просто учитывать параллельное функционирование отдельных
частей системы
Модели с очередями:
Модели с очередями основываются на теории массового обслуживания. В
этих моделях вычислительная система представляет из себя множество
ресурсов – обрабатывающих приборов и очередей к ним.
15
Функциональные модели вычислительных систем
структурные модели;
функциональные модели;
модели производительности.
Делятся на четыре группы:
 графовые модели;
 конечные автоматы;
 модели с очередями;
 сети.
Сети:
Наиболее популярной моделью стали сети Петри и ее обобщения. В этой
модели и ее обобщениях основные трудности преодолевались за счет трех
основных характеристик:
один шаг в развитии системы определялся не на общем или глобальном
состоянии системы, а только на состоянии тех ее компонентов, от
которых он зависел и где происходили какие-то изменения;
моделировалось только управление;
модель графическая.
16
Модели производительности
структурные модели;
функциональные модели;
модели производительности.
Аналитические модели
Аналитическая модель производительности определяется аналитическим
выражением:
P=S(w),
где w – модель рабочей нагрузки, а S(w) – модель системы, получаемая из
функциональной модели применительно к конкретной модели рабочей
нагрузки.
Эмпирические модели
Эмпирические модели производительности строятся на основе анализа
данных, полученных при измерении параметров рабочей нагрузки и
соответствующих значений производительности системы. Эмпирические
данные это одна из форм представления временной диаграммы
использования ресурсов системы в интересующем пользователей аспекте.
Эмпирическая модель может быть представлена либо в виде таблицы, либо в
виде графика и т.п., то есть в любой из форм представления функций. Саму
функцию можно построить с помощью регрессионного анализа.
17
Способы получения данных
Делятся на четыре группы:
 экспериментальный;
 численное решение функциональной модели;
 использование эмулятора анализируемой системы;
 имитационное моделирование.
18
Измерение параметров функционирование систем
Концепция наблюдателя
Наблюдатель может быть внутренним либо внешним.
Внешний наблюдатель рассматривает систему как "черный ящик", который содержит
ограниченное число известных функций. Наблюдение сводится к измерению
изменений в реакции системы при контролируемых изменениях рабочей нагрузки.
Внутренний наблюдатель обеспечивает измерения и контроль за изменениями,
происходящими внутри системы.
Наблюдаемое поведение системы есть последовательность изменений наблюдаемых состояний системы.
Наблюдаемое состояние, отражающее поведение системы даже на самом нижнем уровне системы – это
состояние всех запоминающих элементов в системе: основной памяти, регистровой, внешней,
регистровой памяти внешних устройств и т.д. Обычно в понятие состояния системы включают лишь
память, отражающую значения объектов в программе.
19
Измерение параметров функционирование систем
Описание поведения программ.
 денотационный. – Программа рассматривается как отображение Ф: X=>Y, где X –
исходные данные, а Y – результаты (акцент ставится на преобразовании
программой данных). Отображение состоит из последовательности отображений
{Фi}, реализуемых операторами программы, которые изменяют значения ее
переменных.
 операционный. – Динамика программы рассматривается как последовательность
событий (под событием понимается смена состояния). В этом походе значительно
расширяется понятие состояния. В него включены не только непосредственно
память программы, но и другие виды памяти в системе.
Данные, собираемые в ходе измерений, можно подразделить по форме на четыре категории: трассы,
относительная активность, частотные характеристики действий и статистические (усредненные)
характеристики действий.
20
Измерение параметров функционирование систем
Виды наблюдателей.
Все средства наблюдения за информационными потоками в вычислительных системах можно
подразделить на программные, микропрограммные и аппаратные

Программный наблюдатель – это специализированная программа (или комплекс программ),
встроенная в измеряемую систему. Наблюдатель выступает посредником между теми
компонентами системы, за которыми он наблюдает. Программный наблюдатель всегда
изменяет измеряемую систему.

Микропрограммные наблюдатели. С микропрограммного уровня доступны такие индикаторы
аппаратуры, которые с вышележащих уровней не доступны. Недостатки: использование
специализированной дорогостоящей аппаратуры; события, возникающие в системе на столь
низком уровне, трудно транслировать в события более высокого уровня, на котором обычно
работает программист.

Аппаратные наблюдатели подразделяются на внутренние и внешние. Внешний аппаратный
наблюдатель подключается к определенным точкам системы, "подслушивает" сигналы на ее
линиях, обрабатывает и записывает их у себя, вне измеряемой системы. Аппаратный
наблюдатель представляет собой совершенно автономную систему, которая не нуждается ни в
какой помощи со стороны измеряемой системы. Он практически не вмешивается в ее работу, а,
стало быть, не изменяет ее поведения.
21
Основные виды производительности
Производительность (быстродействие) ЭВМ – среднестатистическое число операций,
выполняемых вычислительной машиной в единицу времени.
Производительность можно подразделить на пиковую (предельная), номинальную и реальную:
 Пиковая производительность (быстродействие) определяется средним числом команд
типа «регистр-регистр», выполняемых в одну секунду без учета их статистического веса в
выбранном классе задач.
 Номинальная производительность определяется средним числом команд, выполняемых
вычислительной системой, при использовании подсистемы памяти для доступа за
операндами и командами программы.
 При выполнении реальных прикладных программ может быть определена эффективная
(реальная) производительность компьютера, Для оценки производительности различных
вычислительных средств в мировой практике наибольшее распространение получило
использование наборов, характерных для выбранной области применения
вычислительной техники, задач.
22
Методы определения быстродействия
• расчетные, основанные на информации, получаемой
теоретическим или эмпирическим путем;
• экспериментальные, основанные на информации, получаемой с
использованием аппаратно-программных измерительных
средств;
• имитационные, применяемые для сложных ЭВМ.
23
Оценка производительности вычислительных систем
Если несколько процессоров составляют вычислительную систему (ВС), то важной
характеристикой ее эффективности при специализированном использовании (например,
в составе АСУ) является коэффициент загрузки процессоров kЗ
Ti (i=1, … , n) – время занятости каждого процессора решением задачи на всем отрезке полного решения задачи,
длиной Треш.
T1
T2
Tреш
24
Оценка производительности вычислительных систем
Если P0 – производительность одного процессора, то реальная производительность ВС,
состоящей из n процессоров, при решении данной задачи составляет:
P0 - определяется классом
решаемых задач
25
Подходы к формированию тестов определения
производительности
 Смеси операций различных типов в случайном порядке, отражающие их процентное
соотношение в задачах интересующего класса.
 Ядра. Ядро – небольшая программа, часть решаемой задачи. Характеристики ядра
могут быть точно измерены. Известны ядра Ауэрбаха: коррекция последовательного
файла и файла на диске, сортировка, обращение матрицы и др.
 Бенчмарки – реальные программы, характеристики которых можно оценить или
измерить при использовании. Обычно берут из числа тех, для которых разрабатывается
система.
 Программа синтетической нагрузки – параметрически настраиваемая программа,
представляющая смеси определенных программных конструкций.
 Модель вычислительной нагрузки. Модель позволяет перейти с уровня оценки одного
процессора ВС на уровень комплексной оценки ВС. Составляется и параметризуется с
учетом сложной структуры ВС и ее устройств, параллельного участия этих устройств в
решении задач, доли участия и порядка взаимодействия устройств.
 Сравнительные оценки исследуемой ВС с другими ЭВМ или ВС, для которых уже
известны значения производительности по числу операций в секунду. Используется
сравнительная оценка характеристик решения задачи на исследуемой ВС и на ВС или
ЭВМ, для которой уже известны характеристики производительности.
26
Основные проблемы, связанные с анализом результатов
контрольного тестирования производительности
•
отделение показателей, которым можно доверять безоговорочно, от тех, которые
должны восприниматься с известной долей настороженности (проблема достоверности
оценок);
•
выбор
контрольно-оценочных
тестов,
наиболее
точно
характеризующих
производительность при обработке типовых задач пользователя (проблема
адекватности оценок);
•
правильное истолкование результатов тестирования производительности, особенно
если они выражены в довольно экзотических единицах типа MWIPS, Drystones/s и т.д.
(проблема интерпретации).
27
Группы тестов для измерения реальной
производительности
1. Тесты производителей (тесты, подготовленные компаниями
разработчика ВС).
2. Стандартные тесты (тестовые программы, основанные на
выполнении стандартных операций и не зависящие от
платформы ВС
3. Пользовательские тесты (учитывают конкретную специфику
применения ВС)
28
Sun Ultra5-10
•
•
•
SPECratio
Стандартные тесты
SPECmark
LinPack - совокупность программ для решения задач линейной алгебры
В качестве параметров используются: порядок матрицы, формат значений
элементов матрицы, способ компиляции.
SPEC XX - два тестовых набора Cint89 и Cfp89.
SPEC 98 – четыре программы целочисленной обработки шесть программ с
операциями на числами с плавающей запятой.
SPEC 92 – 6 эталонных тестов, а также 14 реальных прикладных программ
SPEC 95 – расширен набор тестовых программ, а также добавлена
возможность тестирования многопроцессорных ВС.
современные тесты SPEC – тестирование многомашинных и
многопроцессорных вычислительных комплексов.
TPC – оценка производительности систем при работе с базами данных.
Тестирование позволяет определить:
а. производительность обработки запросов QppD (Query Processing
Performance), измеряемая количеством запросов, которое может быть
обработано при монопольном использовании всех ресурсов
тестируемой системы;
б. пропускная способность системы QthD (Query Throughput),
измеряемая
количеством запросов, которое система в состоянии
совместно обрабатывать в течение часа;
в. отношение стоимости к производительности $/QphD, измеряемое как
стоимость 5-летней эксплуатации системы, отнесенная к числу
запросов, обработанных в час.
29
Оценка надежности вычислительных систем
Под надежностью ВС понимается вероятность решения поставленной перед ней
задачи.
Надежность ВС в составе сложной системы управления определяется следующими факторами:

вероятностью пребывания в исправном состоянии в момент начала цикла
управления;

вероятностью пребывания в исправном состоянии в течение всего цикла
управления;

помехоустойчивостью, т.е. способностью с допустимыми потерями временных,
точностных и аппаратурных ресурсов на требуемом качественном уровне
завершить цикл управления при возникновении неисправностей.
30
Дерево логических возможностей
ВС (ЭВМ)
КГ
Готов
а
P1(t)
1-КГ
Не
готова
P3(t)
P2(t)
Безотказна Сбой
я работа P
восст
Восстановлен
Отказ
1-Pвосст
Не восстановлен
Pрез
1-Pрез
Переход
на резерв
Отказ
полный
Дерево логических возможностей строится следующим образом. При исходе из одной вершины на каждом уровне ветвления
вводится исчерпывающее множество событий, т.е. сумма их вероятностей равна единице. Вероятности событий проставляются на
дугах. Тогда вероятность интересующей нас совокупности событий находится как сумма произведений вероятностей, отмечающих
пути, которые ведут к данным событиям. Пример проиллюстрирует сказанное выше.
31
Коэффициент готовности КГ
T0 – суммарное время работы вычислительной системы;
Tвосст – среднее время восстановления (в т.ч. ремонта) после отказа.
Возможны три варианта:
• в течение всего времени t решения задачи (t – цикл управления) ВС работала
безотказно. Т.е. без каких-либо осложнений задача решена в предположении, что
программы составлены правильно;
• произошел сбой (не усложняя проблемы, учитывая обычную быстротечность
процессов, считаем, что сбой — единственный);
• произошел отказ.
32
Расчет модели надежности.
Пусть λ1 – частота сбоев (количество сбоев в единицу времени), найденная как одна из характеристик
выбранной ЭВМ; λ2 – частота отказов; λ1+λ2=λ.
Тогда λ*t – количество сбоев и отказов за время t, которое называется циклом управления.
Вероятность сбоя или отказа на таком элементарном отрезке:
Вероятность безотказной работы на элементарном отрезке :
на всех элементарных отрезках :
Вероятность безотказной работы:
Тогда P2(t)+P3(t)=1-P1(t)=1-e-λt
Вероятности сбоев и отказов:
Полная вероятность успешного решения задачи:
33
Защита от сбоев.
Двойной просчет характерен для ЭВМ, не обладающих аппаратным контролем. В случае
несовпадения результатов двойного просчета задача считается третий раз.
Программно-алгоритмический контроль основан на способности предсказания
ограниченной области, которой должны принадлежать результаты счета.
Аппаратный контроль устраняет синхронные аварии и сигнализирует об асинхронных
авариях, порождая сигнал прерывания.
34
Методы повышения быстродействия компьютеров
Существуют три способа повышения производительности современных
вычислительных систем:
•
за счет использования конвейеров команд и арифметических конвейеров
(конвейеризация).
•
за счет повышения быстродействия элементной базы (тактовой частоты).
•
за счет увеличения числа одновременно работающих в одной задаче ЭВМ,
процессоров, АЛУ, умножителей и так далее, то есть за счет параллелизма
выполнения операций (параллелизм).
35
Конвейеризация
Этапы конвейера:
•
•
•
•
•
IF (Instruction Fetch) - считывание команды в процессор;
ID (Instruction Decoding) - декодирование команды;
OR (Operand Reading) - считывание операндов;
EX (Executing) - выполнение команды;
WB (Write Back) - запись результата.
Команда
i
i+1
i+2
i+3
i+4
1
IF
2
ID
IF
3
OR
ID
IF
4
EX
OR
ID
IF
Такт
5
6
7
8
WD
EX WD
OR EX WD
ID OR EX WD
IF
ID
OR
EX
9
W
D
36
Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в
некоторых условных единицах):
TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.
Тогда, предполагая, что дополнительные расходы времени составляют δ=5 единиц и выравнивая
длину каждой ступени до максимальной, получим время такта:
T = max {TIF, TID, TOR, TEX, TWB} + δ = 30.
Основываясь на вышеизложенном можно оценить время выполнения одной команды и
некоторой группы команд при последовательной и конвейерной обработке.
При последовательной обработке время выполнения N команд составит:
Tпосл = N*(TIF + TID + TOR + TEX + TWB) = 100N.
Tконв = 5T + (n-1) * T.
Количество команд
1
2
10
100
Последовательное выполнение
100
200
1000
10000
Конвейерное выполнение
150
240
420
3120
37
Эффективность конвейерной обработки
Под
эффективностью
обработки
понимается
реальная
производительность Е конвейерного устройства, равную отношению
числа выполненных операций n к времени их выполнения t, то
зависимость производительности от длины входных векторов:
определяется следующим соотношением:
n
n
E 

t   L  k 1
1
  (  L  1)

n
38
Повышение быстродействия элементной базы
•
Уменьшение (укорачивание) длина канала транзисторов (переход на более тонки
технологии), составляющих дискретные структуры процессора, что в свою очередь
увеличивает их быстродействие.
39
Снижение площади транзистора, что должно сопровождаться
уменьшением его внутренней емкости. Однако применение high-k
диэлектрика для изоляции затвора транзисторов выполненных по 45 нм
тех. процессу, снижает емкость затвора незначительно и сохраняет
емкость затвора на уровне близком к 65 нм тех. процессу. Данный факт
не позволяет снизить удельную (на 1 ключ) потребляемую мощность не
смотря на снижение размера
Отсутствие прироста тактовой частоты (более 3ГГц) при
уменьшении площади кристалла процессора.
Мощность, потребляемая процессором (P, Вт) определяемая
потерями в структурах процессора пропорциональна частоте
переключения fn транзисторов и квадрату питающего напряжения Е2
40
41
Уменьшение площади занимаемой транзистором. Размещение большего
число транзисторов и усложнение структуры процессора на подложке,
размер которой не превышает подложку предыдущей серии
процессоров.
42
Формы параллелизма
Распараллеливание операций – перспективный путь повышения
производительности вычислений. Согласно закону Мура число
транзисторов экспоненциально растёт, что позволяет в настоящее
время включать в состав CPU большое количество исполнительных
устройств самого разного назначения.
43
Закон Мура
Зако́н Му́ра — эмпирическое
наблюдение, сделанное в 1965 году
(через шесть лет после изобретения
интегральной схемы), в процессе
подготовки выступления Гордоном
Муром (одним из основателей Intel). Он
высказал предположение, что число
транзисторов на кристалле будет
удваиваться каждые 24 месяца.
44
Уровни параллелизма
Степень
гранулярности:
Микроуровневый параллелизм
Мелкозернистый
Параллелизм уровня команд
Среднезернистый
Параллелизм уровня потоков
Параллелизм уровня заданий
Мультипроцессорные системы
Мультикомпьютерные системы
Крупнозернистый
45
Зависимость по данным
Параллелизм – это возможность одновременного выполнения более одной
арифметико-логической операции. Возможность параллельного выполнения этих
операций определяется правилом Рассела, которое состоит в следующем.
Программные объекты A и B (команды, операторы, программы) являются
независимыми и могут выполняться параллельно, если выполняется следующее
условие:
(InB ∧ OutA) ∨ (InA ∧ OutB) ∧ (OutA ∧ OutB) = ,
где In(A) – набор входных, а Out(A) – набор выходных переменных объекта
A. Если условие не выполняется, то между A и B существует зависимость и они
не могут выполняться параллельно.
46
Зависимость по данным
Нарушение условия в первом терме:
A: R = R1 + R2
B: Z = R + C
Здесь операторы A и B не могут выполняться одновременно, так как результат A
является операндом B.
Нарушение условия во втором терме:
A: R = R1 + R2
B: R1 = C1 + C2
Здесь операторы A и B не могут выполняться одновременно, так как выполнение
B вызывает изменение операнда в A.
Нарушение условия в третьем терме:
A: R = R1 + R2
B: R = C1 + C2
Здесь одновременное выполнение операторов дает неопределенный результат.
47
Информационный граф задачи
Наиболее общей формой представления этих зависимостей является
информационный граф задачи. В своей первоначальной форме ИГ, тем не
менее, не используется ни математиком, ни программистом, ни ЭВМ.
48
Ярусно-параллельная форма
Более определенной
формой
представления
параллелизма
является ярусно-параллельная форма (ЯПФ): алгоритм вычислений
представляется в виде ярусов, причем в нулевой ярус входят
операторы (ветви), не зависящие друг от друга, в первый ярус –
операторы, зависящие только от нулевого яруса, во второй – от
первого яруса и т. д.
Для ЯПФ характерны параметры, в той или иной мере
отражающие степень параллелизма метода вычислений: bi – ширина
i-го яруса; B – ширина графа ЯПФ (максимальная ширина яруса, т. е.
максимум из bi, i = 1, 2, ...); li – длина яруса (время операций) и L
длина графа; ε – коэффициент заполнения ярусов; θ – коэффициент
разброса указанных параметров и т. д.
49
Мелкозернистый (скалярный) параллелизм
При исполнении программы регулярно встречаются ситуации, когда
исходные данные для i-й операции вырабатываются заранее, например,
при выполнении (i-2)-й или (i-3)-й операции. Тогда при соответствующем
построении вычислительной системы можно совместить во времени
выполнение i-й операции с выполнением (i-1)-й, (i-2)-й, ... операций.
50
Пример мелкозернистого параллелизма
Пусть имеется программа для расчета ширины запрещенной зоны транзистора и в этой
программе есть участок — определение энергии примесей по формуле:
Тогда последовательная программа для вычисления E будет такой:
F1 = m ∗ q ∗q∗ q ∗ q ∗  ∗ 
F2 = 8 ∗ 0 ∗ 0 ∗  ∗  ∗ h ∗ h
E = F1/F2
Здесь имеется параллелизм, но при записи на Фортране (показано выше) или Ассемблере
у нас нет возможности явно отразить его. Явное представление параллелизма для
вычисления E задается ЯПФ:
Для скалярного
параллелизма используют
термин мелкозернистый
параллелизм.
51
Крупнозернистый параллелизм
Векторный параллелизм. Наиболее распространенной в обработке
структур
данных
является
векторная
операция
(естественный
параллелизм). Вектор — одномерный массив, который образуется из
многомерного массива, если один из индексов не фиксирован и пробегает
все значения в диапазоне его изменения.
Области применения векторных операций над массивами обширны:
цифровая
обработка
сигналов
(цифровые
фильтры);
механика,
моделирование сплошных сред; метеорология; оптимизация; задачи
движения; расчеты электрических характеристик БИС и т. д.
DO 1 I = 1,N
1 C(I,J) = A(I,J) + B(I,J)
C (∗, j) = A (∗, j) + B (∗, j)
52
Параллелизм независимых ветвей
Суть параллелизма независимых ветвей состоит в том, что в программе
решения большой задачи могут быть выделены независимые программные части –
ветви программы, которые при наличии нескольких обрабатывающих устройств
могут выполняться параллельно и независимо друг от друга. Двумя независимыми
ветвями программы считаются такие части задачи, при выполнении которых
выполняются следующие условия:
1. ни одна из входных величин для ветви программы не является выходной
величиной другой программы (отсутствие функциональных связей);
2. для обеих ветвей программы не должна производиться запись в одни и те
же ячейки памяти (отсутствие связи по использованию одних и тех же полей
оперативной памяти);
3. условия выполнения одной ветви не зависят от результатов или признаков,
полученных при выполнении другой ветви (независимость по управлению);
4. обе ветви должны выполняться по разным блокам программы (программная
независимость).
53
Параллелизм вариантов
Это широко распространенный в практике вариант решение одной и
той же модели при разных входных параметрах, причем, все варианты
(как правило, с длительным счетом) должны быть получены за
ограниченное время. Например, варианты моделирования используются
при анализе атмосферной модели климата, при расчете ядерного взрыва,
обтекания летательного аппарата, расчета полупроводниковых приборов.
Параллелизм вариантов отличается от идеологии крупнозернистого
параллелизма. Отличие состоит в том, что в случае крупнозернистого
параллелизма вычисления проводятся внутри одной задачи и требования
к скорости обмена между частями задачи достаточно высокие. В
параллелизме вариантов распараллеливаются целые задачи, обмен
между которыми в принципе отсутствует.
Системы распределенных
вариантных задач.
вычислений
идеальны
для
решения
54
Закон Амдала
Одной из главных характеристик параллельных систем является
ускорение R параллельной системы, которое определяется выражением:
R = T1 /Tn ,
где T1 − время решения задачи на однопроцессорной системе, а Tn −
время решения той же задачи на n − процессорной системе.
Пусть W = Wск + Wпр, где W − общее число операций в задаче, Wпр −
число операций, которые можно выполнять параллельно, а Wcк − число
скалярных (нераспараллеливаемых) операций.
Если обозначить через t время выполнения одной операции. Тогда
закон Амдала выглядит следующим образом:
Здесь a = Wск /W − удельный вес скалярных операций.
55
Следствия закона Амдала
Закон Амдала определяет принципиально важные для параллельных
вычислений положения:
 ускорение
зависит
от
потенциального
параллелизма
задачи
(величина 1– а) и параметров аппаратуры (числа процессоров n);
 предельное ускорение определяется свойствами задачи.
56
Сетевой закон Амдала
Основной вариант закона Амдала не отражает потерь времени на
межпроцессорный обмен сообщениями. Эти потери могут не только снизить
ускорение вычислений, но и замедлить вычисления по сравнению с
однопроцессорным вариантом. Поэтому необходима некоторая модернизация
выражения:
Здесь Wc − количество передач данных, tc − время одной передачи данных.
Выражение:
является сетевым законом Амдала.
57
Особенности многопроцессорных вычислений
на основе закона Амдала
1. Коэффициент сетевой деградации вычислений с:
определяет объем вычислений, приходящийся на одну передачу данных (по затратам
времени). При этом сА определяет алгоритмическую составляющую коэффициента
деградации, обусловленную свойствами алгоритма, а сТ − техническую составляющую,
которая зависит от соотношения технического быстродействия процессора и аппаратуры
сети.
Таким образом, для повышения скорости вычислений следует воздействовать на обе
составляющие коэффициента деградации.
2. Даже если задача обладает идеальным параллелизмом, сетевое ускорение
определяется величиной:
и увеличивается при уменьшении с. Следовательно, сетевой закон Амдала должен
быть основой оптимальной разработки алгоритма и программирования задач,
предназначенных для решения на многопроцессорных ЭВМ
Если система имеет несколько архитектурных уровней с разными формами параллелизма, например,
мелкозернистый параллелизм на уровне АЛУ, параллелизм среднего уровня на процесс сорном уровне и
параллелизм задач, то качественно общее ускорение в системе будет:
R = r1×r2×r3,
где ri - ускорение некоторого уровня.
58
Вычислительные системы
Компьютерные с
общей памятью
(мультипроцессорные
системы)
Компьютерные с
распределенной
памятью
(мультикомпьютерные
системы)
59
Мультипроцессорные системы
• Первый класс – это компьютеры с общей памятью.
Системы, построенные по такому принципу, иногда
называют мультипроцессорными "системами или просто
мультипроцессорами. В системе присутствует несколько
равноправных процессоров, имеющих одинаковый доступ
к единой памяти. Все процессоры "разделяют" между
собой общую память.
Все процессоры работают с единым адресным
пространством: если один процессор записал значение 79
в ячейку по адресу 1024, то другой процессор, прочитав
содержимое ячейки, расположенное по адресу 1024,
получит значение 79.
60
Параллельные компьютеры с общей памятью
кэш-память
…
Регистры
Процессорный
элемент
Процессор
кэш-память
Регистры
Процессорный
элемент
Процессор
кэш-память
Регистры
Процессор
Процессорный
элемент
Разделяемая память (оперативная память)
61
Мультикомпьютерные системы
• Второй класс — это компьютеры с распределенной
памятью, которые по аналогии с предыдущим классом
иногда называют мультикомпьютерными системами.
Каждый вычислительный узел является полноценным
компьютером со своим процессором, памятью,
подсистемой ввода/вывода, операционной системой.
В такой ситуации, если один процессор запишет значение
79 по адресу 1024, то это никак не повлияет на то, что по
тому же адресу прочитает другой, поскольку каждый из
них работает в своем адресном пространстве.
62
Локальная
память (ОП, ЖД)
Локальная
память (ОП, ЖД)
кэш-память
…
Регистры
Процессорный
элемент
Процессор
кэш-память
Регистры
Процессор
кэш-память
Процессорный
элемент
Регистры
Процессорный
элемент
Процессор
Параллельные компьютеры с распределенной памятью
Локальная
память (ОП, ЖД)
Коммутационная среда
63
Blue Gene/L
Расположение:
Ливерморская национальная лаборатория имени Лоуренса
Общее число процессоров 65536 штук
Состоит из 64 стоек
Производительность 280,6 терафлопс
В штате лаборатории - порядка 8000 сотрудников, из
которых - более 3500 ученых и инженеров.
Машина построена по сотовой архитектуре, то есть, из
однотипных блоков, что предотвращает появление "узких
мест" при расширении системы.
Стандартный модуль BlueGene/L - "compute card" - состоит
из двух блоков-узлов (node), модули группируются в
модульную карту по 16 штук, по 16 модульных карт
устанавливаются на объединительной панели (midplane)
размером 43,18 х 60,96 х 86,36 см, при этом каждая такая
панель объединяет 512 узлов. Две объединительные панели
монтируются в серверную стойку, в которой уже
насчитывается 1024 базовых блоков-узлов.
На каждом вычислительном блоке (compute card) установлено по два
центральных процессора и по четыре мегабайта выделенной памяти
Процессор PowerPC 440 способен выполнять за такт четыре операции с
плавающей запятой, что для заданной тактовой частоты соответствует пиковой
производительности в 1,4 терафлопс для одной объединительной панели
(midplane), если считать, что на одном узле установлено по одному процессору.
Однако на каждом блоке-узле имеется еще один процессор, идентичный
первому, но он призван выполнять телекоммуникационные функции.
64
Задачи параллельных вычислений
• Построении вычислительных систем с
максимальной производительностью
– компьютеры с распределенной памятью
– единственным способом программирования подобных
систем является использование систем обмена
сообщениями
• Поиск методов разработки эффективного
программного обеспечения для параллельных
вычислительных систем
– компьютеры с общей памятью
– технологии программирования проще
– по технологическим причинам не удается объединить
большое число процессоров с единой оперативной
памятью
– проблемным звеном является система коммутации
65
Организация мультипроцессорных систем
(общая шина)
Процессоры
Пр
.
Пр
.
Пр
.
Общая память
Память
Шина
Мультипроцессорная система с общей
шиной
Чтобы предотвратить
одновременное обращение
нескольких процессоров к
памяти, используются схемы
арбитража, гарантирующие
монопольное владение
шиной захватившим ее
устройством.
Недостаток:
заключается в том, что даже небольшое увеличение числа устройств на
шине (4-5) очень быстро делает ее узким местом, вызывающим
значительные задержки при обменах с памятью и катастрофическое
падение производительности системы в целом
Достоинство: простота и дешевизна конструкции
66
Организация мультипроцессорных систем
(матричный коммутатор)
Процессоры
Пр
.
Пр
.
Пр
.
Пр
.
Память
Память
Память
Память
Модули памяти
Точечные
переключатели
Матричный коммутатор позволяет разделить
память на независимые модули и обеспечить
возможность доступа разных процессоров к
различным модулям одновременно.
На пересечении линий располагаются
элементарные точечные переключатели,
разрешающие или запрещающие передачу
информации между процессорами и модулями
памяти.
Преимущества:
возможность одновременной работы
процессоров с различными модулями памяти
Мультипроцессорная система с
матричным коммутатором
Недостаток:
большой объем необходимого оборудования, поскольку для связи n
процессоров с n модулями памяти требуется nxn элементарных
переключателей
67
Пр
.
Пр
.
Пр
.
Пр
.
Память
Память
Память
Память
Модули памяти
Процессоры
Организация мультипроцессорных систем
Использование каскадных
переключателей
Проблема:
задержки
Переключатели 2x2
Мультипроцессорная система с омега-сетью
Каждый использованный коммутатор может соединить любой из двух своих
входов с любым из двух своих выходов. Это свойство и использованная
схема коммутации позволяют любому процессору вычислительной системы
обращаться к любому модулю памяти.
В общем случае для соединения n процессоров с n модулями памяти
потребуется log2n каскадов по n/2 коммутаторов в каждом, т. е. всего
(nlog2n)/2 коммутаторов.
68
Топологические связи модулей ВС
а)
б)
в)
а – линейка; б – кольцо; в – звезда
Выбор той топологии связи
процессоров в конкретной
вычислительной системе
может быть обусловлен
самыми разными причинами.
Это могут быть
соображениями стоимости,
технологической
реализуемости, простоты
сборки и программирования,
надежности, минимальности
средней длины пути между
узлами, минимальности
максимального расстояния
между узлами и др.
69
Варианты топологий связи процессоров и ВМ
NUMA
Non Uniform
Memory
Access
а)
в)
б)
г)
а – решетка; б – 2-тор; в – полная связь; г – гиперкуб
70
Топология двоичного гиперкубы
В n-мерном пространстве в вершинах единичного nмерного куба размещаются процессоры системы, т. е.
точки (x1, x2, …, хn), в которых все координаты хi могут
быть равны либо 0, либо 1. Каждый процессор соединим
с ближайшим непосредственным соседом вдоль каждого
из n измерений. В результате получается n-мерный куб
для системы из N = 2n процессоров. Двумерный куб
соответствует простому квадрату, а четырехмерный
вариант условно изображен на рисунке. В гиперкубе
каждый процессор связан лишь с log2N
непосредственными соседями, а не с N, как в случае
полной связности.
Гиперкуб имеет массу полезных свойств.
Например, для каждого процессора очень просто определить всех его
соседей: они отличаются от него лишь значением какой-либо одной
координаты хi. Каждая "грань" n-мерного гиперкуба является гиперкубом
размерности n-1. Максимальное расстояние между вершинами n-мерного
гиперкуба равно n. Гиперкуб симметричен относительно своих узлов: из
каждого узла система выглядит одинаковой и не существует узлов, которым
необходима специальная обработка.
71
Достоинства и недостатки компьютеров с
общей и распределенной памятью
Для компьютеров с общей памятью проще
создавать параллельные программы, но их
максимальная производительность сильно
ограничивается небольшим числом
процессоров.
Для компьютеров с распределенной памятью
все наоборот.
Одним из возможных направлений
объединения достоинств этих двух классов
является проектирование компьютеров с
архитектурой NUMA (Non Uniform Memory
Access).
Классификация вычислительных систем
•
•
•
•
•
Классификация Флинна
Классификация Хокни
Классификация Фенга
Классификация Дункана
Классификация Хендлера
73
Классификация Флина
Базируется на понятии потока, под которым понимается последовательность элементов, команд
или данных, обрабатываемая процессором.
SISD (single instruction stream / single data stream)
- одиночный поток команд и одиночный поток
данных.
SIMD (single instruction stream / multiple data
stream) - одиночный поток команд и
множественный поток данных.
MISD (multiple instruction stream / single data
stream) - множественный поток команд и
одиночный поток данных.
MIMD (multiple instruction stream / multiple data
stream) - множественный поток команд и
множественный поток данных.
74
Архитектуры ЭВМ
Память программ
ЦУУ
Процессор
ПД
Память
ПЭ1
ПД1
…
ПЭ2
ПЭN
ПД2
Память данных и результатов
SISD- архитектура
Результаты
Результаты
ПК
SIMD- архитектура
Память программ
Память программ
ЦУУ
П2
...
ПК1
ПКN
...
ПN
ПД
Память данных и результатов
MISD-архитектура
ПК2
П1
П2
ПД1
ПД2
ПКN
...
...
ПN
ПДN
Память данных и результатов
MIMD-архитектура
Результаты
П1
ПК2
Результаты
ПК1
ЦУУ
75
Недостатки классификации Флина
1. Некоторые архитектуры четко не вписываются в данную
классификацию
2. Чрезмерная заполненность класса MIMD
76
Классификация Хокни
Основная идея классификации состоит в следующем.
Множественный поток команд может быть обработан двумя способами:
либо одним конвейерным устройством обработки, работающем в режиме
разделения времени для отдельных потоков, либо каждый поток
обрабатывается своим собственным устройством.
77
Классификация Хокни
78
Примеры классификации Флина
•
•
•
•
SISD – PDP-11, VAX 11/780, CDC 6600 и CDC 7600
SIMD – ILLIAC IV, CRAY-1
MISD – нет
MIMD – большинство современных машин
Примеры классификации Хокни
MIMD конвейерные – Denelcor HEP
MIMD переключаемые с распределенной памятью – PASM, PRINGLE
MIMD переключаемы с общей памятью – CRAY X-MP, BBN Butterfly
MIMD звездообразная сеть – ICAP
MIMD регулярные решетки – Intel Paragon, CRAY T3D
MIMD гиперкубы – NCube, Intel iPCS
MIMD с иерархической структурой (кластеры) – Cm* , CEDAR
79
Классификация Фенга
Идея классификации вычислительных
систем на основе двух простых
характеристик. Первая - число бит n в
машинном слове, обрабатываемых
параллельно при выполнении
машинных инструкций. Вторая
характеристика равна числу слов m,
обрабатываемых одновременно данной
вычислительной системой. Вторую
характеристику обычно называют
шириной битового слоя.
80
Классификация Фенга
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 8 9 1011 12 13 1415 16 17 18 1920 21 22 2324 25 26 2728 29 30 3132 33 34 3536 37 38
Любую вычислительную систему C можно описать парой чисел (n, m) и
представить точкой на плоскости в системе координат длина слова ширина битового слоя. Площадь прямоугольника со сторонами n и m
определяет интегральную характеристику потенциала параллельности
P архитектуры и носит название максимальной степени параллелизма
вычислительной системы: P(C)=mn.
81
Примеры классификации Фенга
• Разрядно-последовательные пословно-последовательные (n=m=1):
MINIMA с естественным описанием (1,1)
• Разрядно-параллельные пословно-последовательные (n>1; m=1):
IBM 701 с описанием (36,1), PDP-11 (16,1), IBM 360/50,
VAX 11/780 - обе с описанием (32,1)
• Разрядно-последовательные пословно-параллельные (n=1; m>1):
STARAN (1, 256) и MPP (1,16384) фирмы Goodyear Aerospace,
прототип системы ILLIAC IV компьютер SOLOMON (1, 1024),
ICL DAP (1, 4096).
• Разрядно-параллельные пословно-параллельные (n>1; m>1):
ILLIAC IV (64, 64), TI ASC (64, 32), C.mmp (16, 16), CDC 6600 (60,
10), BBN Butterfly GP1000 (32, 256).
82
Недостаток
• не делает никакого различия между
процессорными матрицами, векторноконвейерными и многопроцессорными
системами;
• отсутствует акцент на том, за счет чего
компьютер может одновременно
обрабатывать более одного слова.
83
Классификация Дункана
Дункан определил набор требований для создания
своей классификации.
• Из классификации должны быть исключены машины,
параллелизм в которых заложен на самом низком уровне:
– конвейеризация на этапе подготовки и выполнения команды;
– наличие в архитектуре нескольких функциональных
устройств, работающих независимо;
– наличие отдельных процессоров ввода/вывода
• Классификация должна быть согласованной с
классификацией Флинна.
• Классификация должна описывать архитектуры, которые
однозначно не укладываются в систематику Флинна
84
Классификация Дункана
85
Основные архитектуры, представленные на рисунке рисунка
•
•
•
•
•
Систолические архитектуры представляют собой множество процессоров,
объединенных регулярным образом. Обращение к памяти может осуществляться
только через определенные процессоры на границе массива. Выборка операндов из
памяти и передача данных по массиву осуществляется в одном и том же темпе.
Направление передачи данных между процессорами фиксировано. Каждый
процессор за интервал времени выполняет небольшую инвариантную
последовательность действий.
Гибридные MIMD/SIMD архитектуры, dataflow, reduction и wavefront вычислительные
системы осуществляют параллельную обработку информации на основе
асинхронного управления.
MIMD/SIMD - типично гибридная архитектура. Она предполагает, что в MIMD системе
можно выделить группу процессоров, представляющую собой подсистему,
работающую в режиме SIMD;
Dataflow используют модель, в которой команда может выполнятся сразу же,
как только вычислены необходимые операнды;
Модель вычислений, применяемая в reduction машинах иная и состоит в
следующем: команда становится доступной для выполнения тогда и только
тогда, когда результат ее работы требуется другой, доступной для выполнения,
команде в качестве операнда;
Wavefront array архитектура. В данной архитектуре процессоры объединяются в
модули и фиксируются связи, по которым процессоры могут взаимодействовать
друг с другом. Данная архитектура использует асинхронный механизм связи с
подтверждением
86
Классификация Хендлера
В основу классификации В.Хендлер закладывает явное описание
возможностей параллельной и конвейерной обработки информации
вычислительной системой. При этом он намеренно не рассматривает
различные способы связи между процессорами и блоками памяти и
считает, что коммуникационная сеть может быть нужным образом
сконфигурирована и будет способна выдержать предполагаемую
нагрузку.
Предложенная классификация базируется на различии между тремя
уровнями обработки данных в процессе выполнения программ:
• уровень выполнения программы
• уровень выполнения команд
• уровень битовой обработки
87
Классификация Хендлера
t(C) = (k, d, w)
t( PEPE ) = (k×k',d×d',w×w')
где:
k - число процессоров (каждый со своим УУ), работающих параллельно
k' - глубина макроконвейера из отдельных процессоров
d - число АЛУ в каждом процессоре, работающих параллельно
d' - число функциональных устройств АЛУ в цепочке
w - число разрядов в слове, обрабатываемых в АЛУ параллельно
w' - число ступеней в конвейере функциональных устройств АЛУ
t(n,d,w)=[(1,d,w)+...+(1,d,w)]{n раз}
88
Дополнения к классификации Хендлера
Для описания:
 сложных структур с подсистемами ввода-вывода
 возможных режимов функционирования вычислительных
систем, поддерживаемых для оптимального соответствия
структуре программ.
Хендлер предлагает использовать три операции:
• Первая операция (×) отражает конвейерный принцип обработки и
предполагает последовательное прохождение данных сначала
через первый ее аргумент-подсистему, а затем через второй
• Вторая операция параллельного исполнения (+), фиксирует
возможность независимого использования процессоров разными
задачами
• Третья операция - операция альтернативы (V), показывает
возможные альтернативные режимы функционирования
вычислительной системы
89
Примеры классификации Хендлера
•
t( MINIMA ) = (1,1,1);
t( IBM 701 ) = (1,1,36);
t( SOLOMON ) = (1,1024,1);
t( ILLIAC IV ) = (1,64,64);
t( STARAN ) = (1,8192,1) - в полной конфигурации;
t( C.mmp ) = (16,1,16) - основной режим работы;
t( PRIME ) = (5,1,16);
t( BBN Butterfly GP1000 ) = (256,~1,~32).
•
t( TI ASC ) = (1,4,64×8)
•
t(CDC 6600) = (1,1×10,~64)
•
t( PEPE ) = (1×3,288,32)
•
t( CDC 6600 ) = (10,1,12) × (1,1×10,64),
•
t( PEPE ) = t( CDC 7600 ) × (1×3, 288, 32) = = (15, 1, 12) × (1, 1×9, 60) × (1×3, 288, 32)
•
(15, 1, 12) × (1, 1×9, 60) = [(1, 1, 12) + ... +(1, 1, 12)]} {15 раз} × (1, 1×9, 60)
•
t( C.mmp ) = (16, 1, 16) V (1×16, 1,1 6) V (1, 16, 16).
90
Download