- •Модели параллелизма
- •Основные архитектуры вс для параллельных вычислений. Классификация Флина.
- •Понятие параллельной формы. Представление параллельного алгоритма в виде граф-схемы.
- •Концепция неограниченного параллелизма.
- •Область применения, достоинства, недостатки метода гиперплоскостей.
- •99 Continue
- •Параметры граф-схемы параллельного алгоритма: высота и ширина параллельной формы. Метод гиперплоскостей.
- •99 Continue
- •Сравнительные характеристики последовательного и параллельного алгоритмов.
- •Понятие минимальной параллельной формы.
- •Метод координат.
- •10, 15. Проблемы параллельной обработки данных.
- •12 .Метод пирамид.
- •10 Continue
- •10 Continue
- •13. Распараллеливание линейных участков программ.
- •14,16,17. Задача распараллеливания выражений. Общая характеристика.
- •18,20. Распараллеливание рекуррентных соотношений. Распараллеливание рекурсий первого порядка. Метод каскадных сумм.
- •Параллельное программирование
- •99 Continue
- •10 Continue
- •10 Continue
- •2 Continue
- •Os linda.
- •Os trollius.
10, 15. Проблемы параллельной обработки данных.
Проблемы параллельного программирования:
Разработка параллельных алгоритмов, которые существенно сложнее обычных последовательных. Как правило, даже разрабатывают сначала последовательный алгоритм, а затем адаптирую к параллельному варианту.
Оценка эффективности параллельных алгоритмов. Существуют специальные программы, которые на каждом этапе предсказывают возможную эффективность.
Существуют проблемы синхронизации и проблемы взаимных блокировок.
Параллельную модель программирования характеризуют:
возможность добиться более высокой производительности;
применение специальных приемов и инструментов программирования;
повышенная трудоемкость программирования;
проблемы с переносимостью программ.
Требования к параллельным программам:
достаточная степень параллелизма;
хорошая масштабируемость;
детерминизм;
эффективность.
Повышенная трудоёмкость параллельного программирования связана с тем, что программист
должен заботиться:
об управлении работой множества процессов;
об организации межпроцессных пересылок данных;
о вероятности тупиковых ситуаций (взаимных блокировках);
о нелокальном и динамическом характере ошибок;
о возможной утрате детерминизма («гонки за данными»);
о масштабируемости;
о сбалансированной загрузке вычислительных узлов.
Метод параллелепипедов.
В этом методе подмножества независимо выполняемых операций ищутся в форме прямоугольных параллелепипедов. Данный метод так же применим и для простых циклов.
ПРИМЕР:
DO 2 I=1,15
X(I)=X(G*I-27)
2 CONTINUE
В этом примере рассматривается одномерный случай пространства итераций, и в результате параллельный счет осуществляется для точек, принадлежащий отрезку прямой длиной = 4.
DO 2 I=1, 4
DO 2 CONC FOR ALL J { 4*(I-1) ≤ J ≤ MIN {4*I,15} }
X(I)=X(G*I-27)
2 CONTINUE
Общая постановка задачи.
Пусть I={I1,I2,…,In} – исходное пространство итераций. Требуется найти такие целые числа, P1,P2,…,Pn, называемые ребрами параллелепипеда, при которых исходные конструкции вида
DO 1 I1=1,R1
DO 1 I2=1,R2
……
DO 1 In=1,Rn
<ТЕЛО ЦИКЛА>
1 CONTINUE
ставится в соответствие эквивалентная конструкция вида
DO 2 CONC FOR ALL J {1,N}
DO 2 Kj=1, Pj
DO 2 I1=K1, R1, P1
DO 2 I2=K2, R2, P2
……
DO 2 In=Kn, Rn, Pn
<ТЕЛО ЦИКЛА>
2 CONTINUE
Искомая конструкция создает для каждого набора Ki…Kn параллельную ветвь, представляющую собой вложенный цикл с шагами исполнения P1 ….Pn. (1≤ Kj≤ Pj)
Для эквивалентности исходного и полученного цикла достаточно, чтобы в каждом из P1*P2…*Pn параллелепипедов не содержалось конкуренционно зависимых итераций, а так же порядок выполнения итераций группами, состоящими из параллелепипедов, был таков, чтобы все использования выполнялись после соответствующих генераций.
Поитерационая синхронизация метода: в каждой ветви осуществляется ожидание выполнения всех итераций одного и того же параллелепипеда.
Если не требовать выполнения условия прямоугольности параллелепипедов, то этот метод является естественным методом гиперплоскостей (гиперплоскость получается как параллелепипед, одна из сторон которого имеет длину =1 , а все остальные совпадают с границей Rk).
Данный метод может использоваться для простых циклов.
Для мин. времени выполнения результирующего цикла требуется, чтобы V пар-да был максимальный. Т.е. задача сводится к задаче целочисленного линейного программирования (решается в случае с линейными индексными выражениями).