МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


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


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


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


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

Типы параллельной обработки информации





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

1. Повышение производительности ЭВМ и ВС не за счет совершенствования элементной базы, а за счет эффективной организации вычислительных процессов.

2. Обеспечение высокой надежности ВС за счет дублирования вычислительной аппаратуры.

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

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

Параллельная обработка информации может производиться на нескольких уровнях (рис. 5.1).

Очевидно, что чем ниже уровень, тем мельче дробление программных процессов, тем мельче, как принято говорить, «зерно параллелизма». В общем случае возможно реализовать параллелизм как на отдельном уровне, так и на нескольких одновременно. Независимая однопроцессорная обработка реализует параллелизм на уровне 1. Векторная обработка заключается в параллельном выполнении циклов на уровне 2 и может производиться как на одном, так и нескольких процессорах. Уровни 3 и 4 соответствуют многопроцессорным ВС. Параллелизм уровня 5 характерен для многомашинных вычислительных комплексов.

Существует два основных способа организации параллельной обработки:

· совмещение во времени этапов решения разных задач;

· одновременное решение различных задач или частей одной задачи;

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

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

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

1. Естественный параллелизм независимых задач.

2. Параллелизм объектов или данных.

3. Параллелизм ветвей задачи или программы.

Рассмотрим эти типы параллелизма.

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

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

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



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

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

3. Параллелизм ветвей задачи или прог­раммы - один из наиболее распространенных типов парал­лелизма в обработке информации. Он заключается в том, что при решении одной задачи могут быть выделены от­дельные ее части - ветви, которые при нали­чии нескольких обрабатывающих устройств могут выпол­няться параллельно. При этом одновременно могут обрабатываться только независимые ветви задачи, т.е. такие ее части, для которых соблюдаются сле­дующие условия:

· ни одна из выходных вели­чин этих ветвей задачи не является входной величиной для другой такой ветви (отсутствие функциональных связей);

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

Хорошее представление о параллелизме ветвей дает ярусно-параллельная форма(ЯПФ) програм­мы, пример которой приведен на рис. 5.2.

Программа представлена в виде совокупности ветвей, расположенных на нескольких уровнях - ярусах. Кружками с цифрами внут­ри обозначены ветви. Длина ветви представляется цифрой, стоящей около кружка и говорящей, сколько временных единиц выполняется данная ветвь. Стрелками показаны входные данные и результаты обработки. Входные данные обозначаются символом X, выходные данные - символом Y. Символы Х имеют нижние цифровые индексы, обозначающие номера входных величин; символы Y имеют цифровые индек­сы и внизу, и вверху; цифра вверху соответствует номеру ветви, при выполнении которой получен данный результат, а цифра внизу означает порядковый номер результата, по­лученного при реализации данной ветви программы. На одном ярусе размещаются независимые ветви задачи, не связанные друг с другом, т.е. результаты решения ка­кой-либо ветви данного яруса не являются входными дан­ными для другой ветви этого же яруса.

Рис. 5.2. Пример ярусно-параллельной формы программы

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

Примем, что длина i-й ветви представляется числом временных единиц ti, которые требуются для ее исполнения. Тогда нетрудно подсчитать, что для исполнения всей программы на 1 процессоре потребуется время T1:

T1=S (10+20+15+30+55+10+15+25+15)=195

i=1

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

Рассмотрим, например, такой вариант выполнения программы, представленной на рис. 5.2. Пусть процессор 1 выполняет ветви 1-3-4-6-7-9, а процессор 2 выпол­няет ветви 2-5-8. На рис. 5.3 представлены временные диаграммы выполнения процессорами ветвей программы.

Рис. 5.3. Разложение ветвей программы по 2 процессорам

Нетрудно подсчитать, что процессор 1 затрачивает 105, а процессор 2 - 100 единиц времени. При этом имеется два промежутка времени, когда один из процессоров вынужденно простаивает – П1 длительностью 10 единиц и П2 длительностью 5 единиц времени. Промежуток П1, во время которого работает только процессор 2, образовался из-за того, что ветвь 7 зависит от ветви 5 (к моменту завершения ветви 6 еще не готовы данные Y51). Промежуток П1, во время которого работает только процессор 1, образовался по причине окончания счета процессором 2.

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

 

, (5.1)

где TP – время решения задачи на p процессорах. Кроме ускорения, используют такую величину, как коэффициент распараллеливания Kп, который рассчитывается как

 

(5.2)

Коэффициент распараллеливанияизменяется от 0 до 1 (от 0 до 100%) и отражает эффективность использования вычислительных ресурсов. В нашем примере нетрудно посчитать, что ускорение S= 195/105 = 1,86, а коэффициент распараллеливания Kп = 0,93. Как видим, по причине простоев одного из процессоров ускорение счета значительно меньше 2, т.е. количества используемых процессоров. Заметим, что в нашем примере не учитывались временные задержки, связанные с переключением контекстов программы (смены ветвей) и передачи данных от одной ветви к другой. Тем не менее, в силу алгоритмических особенностей программы, часть вычислений в промежутки П1 и П2 производится только одним процессором, т.е. фактически последовательно.

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

 

(5.3)

Первое слагаемое определяет время выполнения распараллеленной части программы, а второе слагаемое – время выполнения последовательной части программы. Нетрудно видеть, что ускорение счета в этом случае не будет превышать величины

(5.4)

Данное соотношение носит название закона Амдала. На примере программы рис. 5.2 мы можем видеть, что доля последовательных вычислений составляет f= 15/195. Подставляя эту величину в формулу закона Амдала, получаем для системы из двух процессоров максимальное ускорение 1,86 раза, что соответствует ранее рассчитанному значению.

Для иллюстрации действия закона Амдала приведем следующий пример. Пусть доля последовательных вычислений в некоторой программе составляет 10%. Тогда максимальное ускорение счета на 100 процессорах не превысит 9,2. Коэффициент распараллеливания составит всего лишь 9,2%. На 10 процессорах ускорение составит 5,3, а коэффициент распараллеливания ‑ 53%. Нетрудно видеть, что даже такая небольшая доля последовательных вычислений уже на теоретическом уровне, без учета неизбежных задержек в реальной ВС, серьезно ограничивает возможности масштабирования программы.

Определим, какая должна быть максимальная доля f последовательных вычислений в программе, чтобы было возможно получить наперед заданное ускорение счета S с максимальным коэффициентом распараллеливания Kп. Для этого выразим из закона Амдала долю последовательных вычислений:

(5.5)

Из соотношения (5.5) видно, что для того, чтобы допустить наличие последовательных вычислений в программе (fдолжно быть больше 0), число процессоров p должно быть больше предполагаемого ускорения S. При этом условии максимальный коэффициент распараллеливания Kп получается при числе процессоров p = S+1. Таким образом, доля последовательных вычислений должна составлять не более

(5.6)

Соотношение (5.6) определяет очень важное следствиеиз закона Амдала. Для того, чтобы ускорить программу в q раз, необходимо ускорить не менее, чем в q раз не менее, чем ( )-ю часть программы. Например, чтобы получить ускорение в 100 раз, необходимо распараллелить 99,99% всей программы.

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

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

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.