Вы находитесь на странице: 1из 12

Тема 2.

Параллельные вычислительные системы

2.1. Способы обработки данных в вычислительных системах


2.1.1.Последовательная обработка данных
2.1.2.Конвейерная обработка данных
2.2. Характеристики систем функциональных устройств
2.2.1. Загруженностью вычислительного устройства
2.2.2. Ускорение вычислительной системы
2.2.3. Определение максимальной производительности вычислительной системы.
Законы Амдала

2.1. Способы обработки данных в вычислительных системах

2.1.1. Последовательная обработка данных

Предположим, что нужно найти сумму двух векторов a и b, каждый из


которых имеет 100 действительных координат с использованием одного
вычислительного устройства (или компьютера), который выполняет
добавление пары чисел за 5 тактов работы и в процессе вычислений
компьютер не выполнять никаких других полезных действий.
В таких условиях сумма векторов может быть найдена в 500 тактов.
Развитие процесса вычислений схематически приведены на рис. 2.1.
Рис. 2.1. Сложение векторов на одном последовательном устройства с 5-тактовой
операцией сложения

Теперь предположим, что есть два такая же устройства, которые


могут работать одновременно и независимо друг от друга, и при этом
отсутствуют дополнительные расходы ресурсов по получению устройствами
входных данных и сохранением результатов. В таком случае можно получить
искомую сумму векторов уже за 250 тактов (рис. 2.2) - то есть имеем двойное
ускорение.

Рис. 2.2. Параллельное сложение векторов на двух одинаковых устройствах с 5-


тактовой операцией сложения
В случае использования 10 одинаковых устройств результат
получается 50 тактов, а в общем случае система из N устройств потратит на
вычисление суммы примерно 500 / N тактов.

2.1.2. Конвейерная обработка данных

Рассмотрим пути повышения эффективности работы системы.


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

Исходя из таких рассуждений, можно сконструировать устройство


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

Такой способ организации вычислений называется конвейерной


обработкой. Каждая часть устройства называется стадией конвейера, а
общее количество стадий - длиной конвейера.

Предположим, что для выполнения операции сложения


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

Теперь рассмотрим процесс сложения двух векторов (рис. 2.3). Как и


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

Рис.2.3. Нахождение суммы c = a + b с помощью 5-стадийного конвейерного


устройства

Примерно такая же ситуация будет и в общем случае. Если


конвейерное устройство - l-стадийное и обработка данных на каждой стадии
длится единицу времени, то для выполнения n последовательных операций
на этом устройстве нужно потратить (l+n-1) единиц времени. Если же это
устройство использовать в последовательном режиме, то время работы будет
равным (l  n).
Итак, для больших n получаем "ускорение" почти в l раз за счет
использования конвейерной обработки данных.

При использовании векторных команд в формуле для времени


обработки данных на конвейерном устройстве добавляется еще одно
слагаемое: +l+n-1, где σ - это время, необходимое для инициализации
векторной команды.
Поскольку ни σ, ни l не зависят от значения n, то с увеличением длины
входных векторов эффективность конвейерной обработки данных возрастает.
Если под эффективностью обработки понимать реальную
производительность конвейерного устройства, равную отношению числа
выполненных операций n к времени их выполнения t, то зависимость
производительности от длины входных векторов определяется следующим
соотношением:

где τ - время такта работы компьютера.

На рис. 2.4 приведен примерный вид графика этой зависимости.

Рис. 2.4. Зависимость производительности конвейерного устройства от длины


входного набора данных

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


конвейерного устройства все больше приближается к его пиковой
производительности 1. Однако пиковая производительность никогда
недостижима на практике.

2.2. Характеристики систем функциональных устройств

Любая вычислительная система представляет собой совокупность


некоторых функциональных устройств (ФУ). Для оценки качества ее работы
вводятся различные характеристики.
Пусть задана система отсчета времени и задана некоторая единица
времени, например, секунда. Будем считать, что все срабатывания одного и
того же ФУ системы имеют одинаковую продолжительность.
Назовем ФУ простым, если никакая последующая операция не может
выполняться на нем до тех пор, пока не выполнится предыдущая. Основное
свойство простого ФУ: оно монопольно использует свое оборудование для
выполнения каждой отдельной операции.
В отличие от простого конвейерное ФУ распределяет свое
оборудование для одновременного выполнения нескольких операций. Очень
часто (но не обязательно) конвейерные ФУ конструируются как линейные
цепочки простых ФУ (стадий).
Простое ФУ можно всегда считать конвейерным ФУ с длиной
конвейера, равной 1.

2.2.1. Загруженность вычислительного устройства

Назовем стоимостью операции время ее реализации, а стоимостью


работы - суммарную стоимость всех выполненных операций.
Загруженностью устройства p на данном промежутке времени будем
называть отношение стоимости реально выполненной работы к максимально
возможной стоимости. Следующие два утверждению содержат описание
основных свойств ФУ и систем ФУ.
Утверждение 1. Максимальная стоимость, которую может выполнить
ФУ за время Т, равна Т для простого ФУ и nT - для конвейерного ФУ длины
n.

Реальная производительностью системы устройств


Будем называть реальной производительностью системы устройств
количество операций, реально выполняются в среднем за единицу времени.
Утверждение 2. Если система состоит из s устройств, имеющих
пиковые производительности 1,…,s и работающих с загруженностью p1,
…,ps то реальная производительность системы r вычисляется по формуле

Определение загруженности системы ФУ


Рассмотрим теперь, каким образом определяется загруженность
системы устройств. Если устройства имеют пиковые производительности 1,
…,s и работают с загруженностью p1,…,ps, то будем считать по
определению, что загруженность системы является величина

где
Загруженность системы является взвешенной суммой загруженности
отдельных устройств, так как по определению коэффициентов i следует, что

Поэтому для загруженности системы выполняются неравенства


0  p 1. Кроме того, из (2) и (3) следует, что загруженность системы равна 1
тогда и только тогда, когда загруженности отдельных устройств системы на
уровне 1.
Также следует отметить, что определение загруженности системы
согласно (2) согласуется с формулой реальной производительности (1).
Действительно, поскольку пиковая производительность π системы устройств
равна 1+…+s, то согласно (1) и (2) подтверждается равенство

2.2.2. Ускорение вычислительной системы

Большое количество ФУ, так же как и конвейерные ФУ, используются


тогда, когда возникает необходимость решить задачу быстрее. Для того,
чтобы понять, насколько быстрее это удается сделать, нужно ввести в
рассмотрение понятие "ускорение". Как и в случае загруженности это
можно сделать по-разному. Рассмотрим один из способов определения
ускорения.
Пусть алгоритм реализуется за время Т на вычислительной системе из
s устройств, простых или конвейерных, которые имеют пиковые
производительности 1,…,s Предположим, что 12…s и пусть при
реализации алгоритма система достигает реальной производительности r,
которая вычисляется по формуле (1). Будем сравнивать скорость работы
системы со скоростью работы гипотетического простого универсального
устройства, которое имеет пиковую производительность s (такую же, как
самое быстрое устройство вычислительной системы) и способно выполнять
те же операции, что и все ФУ системы.
Таким образом, будем называть отношение R = r / s ускорением
реализации алгоритма на данной вычислительной системе или просто
ускорением. То есть,
Анализ формулы (5) показывает, что ускорение вычислительной
системы, которая состоит из s устройств, не может превышать величины s и
может достигать s тогда и только тогда, когда все устройства системы имеют
одинаковые пиковые производительности и являются полностью
загруженными.

Утверждение 3. Если система состоит из s устройств, которые имеют


одинаковые пиковые производительности, то
 загруженность системы равна среднему арифметическому
загруженности всех устройств;
 реальная производительность системы равна сумме реальной
производительности всех устройств;
 пиковая производительность системы в s раз больше
производительность одного устройства;
 ускорение системы равно сумме загруженности всех устройств

2.2.3. Определение максимальной производительности


вычислительной системы. Законы Амдала

Одним из основных вопросов теории вычислительных систем является


вопрос достижения высокого уровня эффективности. Из (4) следует, что для
этого нужно достичь высокого уровня загруженности системы. Этого в свою
очередь можно достичь путем повышения загруженности отдельных
устройств.
Однако остается открытым вопрос, как можно это сделать. Если
устройство не загружено на 100%, то загруженность можно всегда повысить
только в том случае, если оно не связано с другими устройствами. В
противном случае ситуация не является очевидной.
Без ограничения общности будем считать, что все устройства являются
простыми, так как произвольное конвейерное устройство можно изобразить в
виде цепочки простых устройств. Предположим, что между устройствами
установлено направленные связи, которые не изменяются в процессе
функционирования.
Построим ориентированный граф (возможно с кратными дугами),
вершины которого взаимно однозначно соответствуют вычислительным
устройствам, а дуги - связям между ними. С вершины А проводим дугу в
вершину В тогда и только тогда, когда результат работы устройства,
которому соответствует вершина А, передается в качестве входного
аргумента для устройства, которому ставится в соответствие вершина В.
Назовем полученный результат графом системы.
Утверждение 4. Если система состоит из s простых устройств,
имеющих пиковые производительности 1,…,s и граф системы является
связным, то доказано, что максимальная производительность системы rmax
выражается формулой

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

 ускорение системы не превышает

Следствие 2 (первый закон Амдала). Производительность


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

Следствие 3. Пусть система образована простыми устройствами и


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

Предположим, что все устройства системы являются простыми и


универсальными (т.е. на них можно выполнять различные операции) и имеют
одинаковую производительность. Пусть в системе реализуется некоторый
алгоритм, а сама реализация соответствует некоторой его ярусно-
параллельной форме. (В ярусы собираются операторы, требующие для своего
выполнения значения (операнды), которые вычисляются только на
предыдущих ярусах.)
Ярусно-параллельная форма (ЯПФ) – это такой вид графа,
у которого в верхний нулевой ярус помещены вершины, имеющие
только исходящие дуги; в нижний ярус помещены вершины,
имеющие только входящие дуги. На k-том ярусе помещены
вершины, которые имеют входящие дуги из предыдущих ярусов,
среди которых хотя бы одна дуга из (k-1)-того яруса. Количество
вершин в ярусе определяет ширину яруса. Наибольшая ширина
яруса определяет ширину графа в ярусно-параллельной форме.
Количество ярусов определяет высоту графа в ярусно-
параллельной форме.
Пример
Выражение Ep = ((a * b) / (c / d)) - ((y - z) - x)

Рис. ЯПФ-граф

Предположим, что высота параллельной формы равна m, ширина -


q, а всего в алгоритме выполняется N операций.
Утверждение 5. Для системы, которая удовлетворяет приведенные
выше условия, максимальное ускорение равно N / m.
Следствие 1. Минимальное количество устройств системы, при
которой может быть достигнуто максимально возможное ускорение, равно
ширине алгоритма.
Предположим, что в алгоритме n операций из N выполняются
последовательно. (Причины этого могут быть разными. Например, операции
могут быть связаны последовательными информационными связями. Также
вполне возможно, что при реализации алгоритма просто не распознали
параллелизм, имеющийся в соответствующей части.) Отношение = n / N
назовем долей последовательных вычислений.

Следствие 2 (второй закон Амдала). Пусть система состоит из s


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

Следствие 3 (третий закон Амдала). Пусть система состоит из s


одинаковых простых универсальных устройств. При любом режиме работы
ее ускорение не может быть больше обратной величины доли
последовательных вычислений.

Вам также может понравиться