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

7.Векторизация. Понятие программы с однократным присваиванием. Векторизующие компиляторы.

Большинство задач, которые могут быть успешно решены на параллельных ВС является задачами, связанными с обработкой векторов и матриц.

Структура задачи этой матрицы естественным образом подходит для систем класса MIMD SIMD и (PVP,MPP), т.е. конвейерным систем матричных процессоров. Поэтому общие рекомендации по построению параллельных алгоритмов могут быть сведены к рекомендациям сформировать задачу в терминах линейной алгебры.

Векторизацией называется процесс поиска в исходной программе фрагментов, связанных с обработкой векторов и матриц и замены таких фрагментов совокупностью параллельно работающих ветвей.

В системах с конвейерной архитектурой, таких как CRAY-1, предусмотрены специальные векторные команды, позволяющие за одно обращение выполнить операцию над всеми элементами вектора.

Векторизующий компилятор – это программа, которая просматривает исходный текст

на последующем языке и генерирует на его основе команды параллельной обработки.

При этом некоторые компиляторы могут для наглядности генерировать промежуточные формы. ASCNX генерирует такую промежуточную форму алгоритмов, как ориентированный граф.

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

Рассмотрим пример умножения на вектор:

Ci=Σ(от m до j=1) AIJBJ

Do 10 i=1,4

C(i)=0

Do 10 j=1,4

C (i)=c(i)+A(I,j)+B(j)

10 continue

in parallel for 1<i<4 , 1<j<4 do begin

temp (I,j)=a(I,j)*b(j)

end in parallel do

in parallel for 1<i<4 do begin

c(i)=0

do 0 j=1,4

c(i) = c(i)+temp(I,j)

10 continue

end in parallel

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

Второе условие – независимость по данным между операциями проводимыми над отдельными элементами векторов for (i=0: j<n: i++)

Третье условие – регулярность расположения элементов векторов (расстояние между элементами вектора, которое подвергается обработки, должно быть известным, постоянным и одинаковым).

Четвертое условие – отсутствие обращений к функциям пользователя при обработке элементов вектора: {f(a[i]};}

8.Основные особенности и этапы выполнения методологии канонического отображения.

МКО представляет собой совокупность подходов позволяющих спроектировать параллельное вычислительные структуры: SIMD, MIMD процессоры. Как и любая методология, методология КО носит алгоритмический, а не алгебраический характер, т.е. для одной и той же задачи может быть получено несколько решений.

Успешность того или иного решения определяется опытом или искусством проектировщика. Методология имеет рекомендательный характер, т.е. алгебраической процедуры, которая бы позволила однозначно вычислить структуру системы для поставленной задачи, не существует. Отличительными чертами методологии КО является: - применимость лишь в случаях однородных графовых зависимостей, т.е. инвариантных по отношению к операции сдвига;- использование только линейных проекций и планов; - регулярность структуры результирующего матричного процессора.

Методология КО включает в себя три основных этапа:

1)разработка однородного графа зависимостей, инвариантного относительно операции сдвигаются.

2)разработка графа потока сигналов путем проецирования графа зависимостей на матричную структуру.

3)разработка самого матричного процессора для физической реализации графа, потока, сигнала.

Можно выделить также нулевой предварительный этап, на котором для построения задачи потребуется промежуточная форма в виде программ с однократным присваиванием, а затем на основе этой программы строится первый граф зависимости, возможно еще не локализованный.

Разработка графа зависимостей является задачей, для которой, как правило, нет однозначных решений, т.е. может быть построено несколько вариантов графа зависимостей.

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

Наряду с методологией канонического отображения существует методология обобщенного отображения. Данная методология более сложна и представляет собой набор методологии меньшего уровня. Методология обобщенного отображения применяется в случаях неоднородности исходного графа зависимостей при нелинейном планировании и при мульти проекциях.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]