
- •Лекция 1 Параллельная обработка данных
- •1. Ярусно-параллельная форма алгоритма
- •2. Автоматическое обнаружение параллелизма
- •3. Степень и уровни параллелизма
- •4. Виды параллелизма
- •4.1. Естественный параллелизм и параллелизм множества объектов
- •4.2. Параллелизм независимых ветвей
- •4.3. Параллелизм смежных операций или локальный параллелизм
- •5. Модель задачи
Лекция 1 Параллельная обработка данных
План
1. Ярусно-параллельная форма алгоритма.
2. Автоматическое обнаружение параллелизма.
3. Степень и уровни параллелизма.
4. Виды параллелизма.
5. Модель задачи.
Параллелизм – это возможность одновременного выполнения нескольких арифметических, логических или служебных операций. Причем операции могут быть как крупноблочные, так и мелкоблочные.
В основу параллельной обработки могут быть положены различные принципы:
- пространственный параллелизм;
- временной параллелизм:
Конвейеризация.
Векторизация.
Матричный.
Систолический.
Организация структуры обработки потока данных.
Организация системы на основе структуры гиперкуб.
Динамическая перестройка структуры ВС.
Описание любого алгоритма является иерархическим, основанным на свойстве вложенности. При программировании выделяют уровни вложенности: задания, задачи, подзадачи (процессы), макрооперации, операции.
1. Ярусно-параллельная форма алгоритма
Наиболее общей формой представления алгоритмов является информационно-управляющий граф алгоритма. Более определенной формой представления параллелизма задач является аппарат ярусно-параллельной формы (ЯПФ).
Алгоритм в ярусно-параллельной форме представляется в виде ярусов, причем в нулевой ярус входят операторы (ветви) независящие друг от друга.
На графе можно обозначить переходы, означающие передачу результатов вычисления примитивной операции из одного яруса к операции из следующего яруса. Ярусы делятся по переходам. Могут быть «пустые» переходы и «пустые» примитивные операции.
При построении ЯПФ опираются на базовый набор примитивных операций (БНО). Ярусно-параллельная форма характеризуется следующими параметрами:
1. Длина графа (количество ярусов) – L.
2. Ширина i-го яруса - bi.
3. Ширина графа ярусно-параллельной формы – B=max(bi).
4. Средняя
ширина графа ЯПФ – Вср
–
.
5. Коэффициент
заполнения i-го
яруса – ki
–
.
6. Коэффициент
разброса операций в графе - Qji
–
,
jБНО,
где
-
количество j-го
типа операций в i-м
ярусе.
7. Минимальное необходимое количество вычислителей (из БНО) для реализации алгоритма, представленного данным графом в ЯПФ.
8. Минимальное время решения алгоритма (сумма времен срабатывания вычислителей с максимальным объемом вычислений по каждому ярусу) – Тmin.
9. Связность алгоритма (количество промежуточных результатов, которое необходимо хранить в процессе реализации алгоритма) – С.
2. Автоматическое обнаружение параллелизма
Возможны два пути построения параллельного алгоритма: непосредственно из постановки задачи или путем преобразования последовательного алгоритма.
Методы построения параллельного алгоритма из последовательного основаны на выделении в последовательном алгоритме типовых часто встречающихся конструкций, которые по определенным правилам заменяются параллельными.
Несмотря на меньший уровень параллелизма, достигаемый при построении параллельного алгоритма путем преобразования из последовательного, такой метод находит широкое применение, так как обеспечивает возможность использовать дорогостоящие прикладные программы, разработанные и отлаженные для последовательных СОД.
В последовательной программе различают явную и скрытую параллельную обработку.
При анализе программы строится граф потока данных. Чтобы обнаружить явную параллельность процессов, анализируются множества входных (считываемых) переменных R и выходных (записываемых) переменных W каждого процесса.
Скрытая параллельная обработка требует некоторой процедуры преобразования последовательной программы, чтобы сделать возможным ее параллельное выполнение. Преобразование может быть следующим:
а) уменьшение высоты деревьев арифметических выражений (рис.1.1);
б
) преобразование
линейных рекуррентных соотношений;
в) замена операторов;
г) преобразование блоков условных переходов и циклов к каноническому виду;
д) распределение циклов.
Параллельные архитектуры достигают высокой производительности, если преобразование параллелизма учитывает особенности архитектуры ВС, на которой предполагается выполнение алгоритма.
В
качестве примера учета схемы размещения
в памяти возьмем память с диагональной
адресацией. Для обеспечения параллельной
обработки матриц элементы их строк и
столбцов должны быть распределены между
запоминающими устройствами процессоров
таким образом, чтобы можно было их
одновременно считывать и обрабатывать.
При этом матрица храниться со сдвигом
(рис.1.2).
Любой алгоритм содержит последовательные (скалярные) участки. Доказано, что длина этих скалярных участков является определяющим фактором при реализации алгоритма на параллельной ВС.