Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_Тайпурова Патимат.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
711.45 Кб
Скачать

Алгоритм распараллеливания ациклических участков

Если многопроцессорная ВС способна воспринять ярусно-параллельную форму, то после построения такой формы программирование заканчивается.

В случае, когда ВС не воспринимает такую форму (по количеству процессов она уже), то строят программы параллельно-последовательного вида.

1. Выделяются параллельные ветви по количеству параллельных процессов в ВС

2. распределяются операторы по ветвям

Первое и второе зависит от конфигурации ВС и от графа зависимости.

Общий алгоритм распараллеливания ациклических участков распадается на три части:

1. Построение графа зависимости

2. Построение ярусно-параллельной формы

3. синтаксис параллельно-последовательной.

Общий алгоритм:

  1. Нахождение информационной зависимости\

  2. Нахождение логической зависимости

  3. Нахождение конкуреционной зависимости

  4. Построение графа зависимости

  5. Формирование первого яруса

  6. Проверка окончания формирования первого яруса

Пусть сформирована k- ярусов. Если не осталось не распределенных перейти к 8. Иначе к пункту 7.

7. формирование ….

8. формирование параллельно-последовательной программы. Программа открывается оператором…

9. формирование… распределение первого яруса по ветвям в И-ю ветвь включаются операторы до тех пор, пока список операторов первого яруса не исчерпается.

10. проверка окончания формирования ветвей. Пусть распределены по ветвям к-ярусы. Если ярусно-параллельная форма исчерпана, то перейти на шаг 12, иначе на шаг 11

11. распределение к+1 яруса по ветвям. К И-той приписывается последовательность операторов к+1 яруса, пока список операторов не исчерпается.

12. формирование окончания программы

Особенности распределения выражения.

С точки зрения структуры вычисления, выражение - это Ациклический процесс.

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

Тема: Распараллеливание циклических фрагментов программ

  1. Пространство итераций

  2. Метод гиперплоскостей

  3. Метод координат

  4. Метод пирамид

Пространство итераций

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

Важнейшим понятием является пространство итераций.

пространство итераций – множество целочисленных векторов

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

1. выявление полных зависимостей между отдельными итерациями

2. сборка на основе выявленных зависимостей, отдельных итераций в параллельные ветви.

Чем больше мощность таких итераций, тем быстрее выполняются параллельные вычисления

Метод гиперплоскостей

  1. Для этого метода предполагается, что тело цикла не содержит отсылок вне тела.

  2. Все индексы выражения линейны и имеют следующий вид …..

  3. Индекс Ии не изменяются телом цикла.

Пример с плоскостью и блинами.

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

Открывается цикл по более простой переменной и задается параллельное выполнение всех итераций при производных значениях остальных переменных

Метод координат

Фото Рисунок

Метод пирамид

Фото Рисунок

Результирующая итерация

Фото Рисунок

Тема: Динамическое распараллеливание