
- •Модели параллелизма
- •Основные архитектуры вс для параллельных вычислений. Классификация Флина.
- •Понятие параллельной формы. Представление параллельного алгоритма в виде граф-схемы.
- •Концепция неограниченного параллелизма.
- •Область применения, достоинства, недостатки метода гиперплоскостей.
- •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.
Сравнительные характеристики последовательного и параллельного алгоритмов.
Параллельные алгоритмы (ПА).
Любая параллельная вычислительная система может быть представлена как совокупность функционально независимых обрабатывающих устройств, осуществляющих обработку информации одновременно. Алгоритм, для реализации на такой вычислительной системе (ВС) должен быть представлен в виде последовательности групп операций, причем все операции одной группы независимы и могут быть выполнены на любом обрабатывающем устройстве системы.
Каждая группа операций (ярус) зависит либо от исходных данных, либо от результатов выполнения предыдущих групп. Группы выполняются последовательно. Представленный, в таком виде алгоритм называется параллельным. Он находится в «параллельной форме».
Каждая группа – ярус ПФ.
Общее число ярусов называется высотой параллельной формы.
Максимальное число операций в ярусе называется шириной параллельной формы.
Теоретически такой алгоритм может быть реализован на параллельной ВС, за время, пропорциональное высоте параллельной формы.
Среди всех возможных параллельных форм одного алгоритма имеется одна или несколько форм минимальной высоты, такие формы называются максимальными и определяют минимально возможное время выполнения алгоритма на ВС.
ПРИМЕР: Пусть требуется выполнить следующее выражение: (AB+CD)(EF+GH)
Данные: A B C D E F G H
Ярус1: AB CD EF GH 4оп
Ярус2: AB+CD EF+GH 2оп
Ярус3: (AB+CD)(EF+GH) 1оп
Основная характеристика ПФ: коэффициент ускорения – это общее число операций в последовательном алгоритме / число ярусов.
В нашем примере Ky=7/3=2,33.
Традиционной считается последовательная модель программирования. В этом случае в любой момент времени выполняется только одна операция и только над одним элементом данных. Последовательная модель универсальна. Ее основными чертами являются применение стандартных языков программирования (для решения вычислительных задач это, обычно, Fortran и С/С++), хорошая переносимость программ и невысокая производительность.
Основными особенностями модели параллельного программирования являются более высокая производительность программ, применение специальных приемов программирования и, как следствие, более высокая трудоемкость программирования, проблемы с переносимостью программ. Параллельная модель не обладает свойством универсальности. В параллельной модели программирования появляются проблемы, непривычные для программиста, привыкшего заниматься последовательным программированием. Среди них: управление работой множества процессоров, организация межпроцессорных пересылок данных и другие.
Последовательную модель программирования характеризуют:
невысокая производительность;
применение стандартных языков программирования;
хорошая переносимость.
Параллельную модель программирования характеризуют:
возможность добиться более высокой производительности;
применение специальных приемов и инструментов программирования;
повышенная трудоемкость программирования;
проблемы с переносимостью программ.
Требования к параллельным программам:
достаточная степень параллелизма;
хорошая масштабируемость;
детерминизм;
эффективность.
Повышенная трудоёмкость параллельного программирования связана с тем, что программист
должен заботиться:
об управлении работой множества процессов;
об организации межпроцессных пересылок данных;
о вероятности тупиковых ситуаций (взаимных блокировках);
о нелокальном и динамическом характере ошибок;
о возможной утрате детерминизма («гонки за данными»);
о масштабируемости;
о сбалансированной загрузке вычислительных узлов.