- •Конвейерная и параллельная обработка данных.
- •Ярусно- параллельная форма представления программы.
- •Крупно блочное распараллеливание. Примеры блочного распределения итераций цикла.
- •Пространство итераций. Метод гиперплоскостей.
- •Как определяется время выполнения параллельного алгоритма?
- •Как определяется расписание для распределения вычислений между процессорами?
- •Как определяются понятия ускорения и эффективности?
- •В чем различие показателей ускорения и эффективности для рассматриваемых вариантов каскадной схемы суммирования?
- •Понятие латентности.
- •Параллельный алгоритм сортировки методом пузырька.
- •Прием и передача данных между отдельными процессами. Прием и передача с блокировкой.
- •Прием и передача данных между отдельными процессами. Прием и передача без блокировки.
- •Прием и передача данных между отдельными процессами. Объединение запросов на взаимодействие.
- •Коллективное взаимодействие процессов. Рассылка сообщений.
- •Коллективное взаимодействие процессов. Сбор сообщений.
- •Синхронизация процессов.
- •Методы распараллеливания и модели программ, поддерживаемые OpenMp.
- •OpenMp -Параллельные и последовательные области программы. Директива parallel
- •OpenMp- Директива single
- •OpenMp- Директива sections
- •OpenMp- директива barrier
- •OpenMp- директива critical
- •OpenMp- Распараллеливание циклов.
Пространство итераций. Метод гиперплоскостей.
Положим, что параметрами цикла данного гнезда циклов являются i1=1,r1; i2=1,r2;.....;in=1,rn. Тогда пространством итераций данного гнезда циклов называется множество n-мерных целочисленных векторов I={i1=1,r1; i2=1,r2;.....;in=1,rn}. В терминах пространства итераций задача распараллеливания цикла ставится как задача разбиения множества I на подмножества I1, I2,...,Is такие, что вычисления тела цикла в каждом из них могут быть выполнены одновременно (с сохранением информационных связей исходного цикла, естественно). Оси координат пространства итераций цикла соответствуют параметрам цикла i1, i2,...,in.
Идея метода гиперплоскостей распараллеливания циклов состоит в отыскании в пространстве итераций I такого семейства гиперплоскостей, чтобы любые две лежащие в одной из этих гиперплоскостей точки p1, p2 были информационно и конкуренционно не связаны.
Как определяется время выполнения параллельного алгоритма?
Вычислительная схема алгоритма G совместно с расписанием Hp может рассматриваться как модель параллельного алгоритма Ap(G,Hp) , исполняемого с использованием p процессоров. Время выполнения параллельного алгоритма определяется максимальным значением времени, используемым в расписании:
Как определяется расписание для распределения вычислений между процессорами?
Операции алгоритма, между которыми нет пути в рамках выбранной схемы вычислений, могут быть выполнены параллельно (для вычислительной схемы на рис. 2.1, например, параллельно могут быть реализованы сначала все операции умножения, а затем первые две операции вычитания). Возможный способ описания параллельного выполнения алгоритма может состоять в следующем.
Пусть p есть количество процессоров, используемых для выполнения алгоритма. Тогда для параллельного выполнения вычислений необходимо задать множество ( расписание )
в котором для каждой операции указывается номер используемого для выполнения операции процессора Pi и время начала выполнения операции ti. Для того чтобы расписание было реализуемым, необходимо выполнение следующих требований при задании множества Hp:
, т.е. один и тот же
процессор не должен назначаться разным
операциям в один и тот же момент;
,
т.е. к назначаемому моменту выполнения
операции все необходимые данные уже
должны быть вычислены.
Как определяются понятия ускорения и эффективности?
Ускорением параллельного алгоритма называется отношение: (4)
где — время вычисления задачи на p процессорах. Заметим, что в определении подразумеваются действительные времена вычислений. Это делает определение более полезным на практике, но затрудняет его использование в том случае, если требуемые времена неизвестны. Для идеальной вычислительной системы и идеальной параллельной реализации алгоритма его ускорение равно средней степени параллелизма.
С ускорением связана эффективность параллельного алгоритма. Эффективностью параллельного алгоритма называется величина:
В чем различие показателей ускорения и эффективности для рассматриваемых вариантов каскадной схемы суммирования?
Как формулируется закон Амдаля? Какой аспект параллельных вычислений позволяет учесть данный закон?
Оценка качества параллельных вычислений предполагает знание наилучших (максимально достижимых) значений показателей ускорения и эффективности.
Закон Амдаля. Достижению максимального ускорения может препятствовать существование в выполняемых вычислениях последовательных расчетов, которые не могут быть распараллелены. Пусть f есть доля последовательных вычислений в применяемом алгоритме обработки данных, тогда в соответствии с законом Амдаля ускорение процесса вычислений при использовании p процессоров ограничивается величиной
Какие основные характеристики используются для оценки топологии сети передачи данных? Приведите значения характеристик для конкретных типов коммуникационных структур (кольцо, гиперкуб и т.д.).
Передача сообщений. Для кольцевой топологии процессор – источник рассылки может инициировать передачу данных сразу двум своим соседям, которые, в свою очередь, приняв сообщение, организуют пересылку далее по кольцу. Трудоемкость выполнения операции рассылки в этом случае будет определяться соотношением:
Для топологии типа решетка-тор алгоритм рассылки может быть получен из способа передачи данных, примененного для кольцевой структуры сети. Так, рассылка может быть выполнена в виде двухэтапной процедуры. На первом этапе организуется передача сообщения всем процессорам сети, располагающимся на той же горизонтали решетки, что и процессор – инициатор передачи. На втором этапе процессоры, получившие копию данных на первом этапе, рассылают сообщения по своим соответствующим вертикалям. Оценка длительности операции рассылки в соответствии с описанным алгоритмом определяется соотношением:
Для гиперкуба рассылка может быть выполнена в ходе N-этапной процедуры передачи данных. На первом этапе процессор-источник сообщения передает данные одному из своих соседей (например, по первой размерности) – в результате после первого этапа есть два процессора, имеющих копию пересылаемых данных (данный результат можно интерпретировать также как разбиение исходного гиперкуба на два таких одинаковых по размеру гиперкуба размерности N-1, что каждый из них имеет копию исходного сообщения). На втором этапе два процессора, задействованные на первом этапе, пересылают сообщение своим соседям по второй размерности и т.д. В результате такой рассылки время операции оценивается при помощи выражения:
Сравнивая полученные выражения для длительности выполнения операции рассылки, можно отметить, что наилучшие показатели имеет топология типа гиперкуб; более того, можно показать, что данный результат является наилучшим для выбранного способа коммуникации с помощью передачи сообщений.
