Крупнозернистый параллелизм.
Векторный параллелизм. Наиболее распространенной в обработке структур данных является векторная операция (естественный параллелизм). Вектор — одномерный массив, который образуется из многомерного массива, если один из индексов не фиксирован и пробегает все значения в диапазоне его изменения. В параллельных языках этот индекс обычно обозначается знаком *. Пусть, например, А, В, С — двумерные массивы. Рассмотрим следующий цикл:
DO 11 = 1,N
1 C(I,J) = A(I,J) + B(I,J)
Нетрудно видеть, что при фиксированном J операции сложения для всех I можно выполнять параллельно, поскольку ЯПФэтого цикла имеет один ярус. По существу этот цикл соответствует сложению столбца J матриц А и В с записью результата в столбец J матрицы С. Этот цикл на параллельном языке записывается в виде такой векторно операции:
С (*, j) = A (*, j) + В (*, j).
Возможны операции и большей размерности, чем векторные: над матрицами и многомерными массивами. Однако в параллельные ЯВУ включаются только векторные операции (сложение, умножение, сравнение и т. д.), потому что они носят универсальный характер, тогда как операции более высокого уровня специфичны.
Области применения векторных операций над массивами обширны: цифровая обработка сигналов (цифровые фильтры); механика, моделирование сплошных сред;
метеорология; оптимизация; задачи движения; расчеты электрических характеристик БИС
и т. д.
Дата добавления: 2015-08-21; просмотров: 1035;