Алгоритмы параллельных вычислений и программирование. Бурова И.Г - 130 стр.

UptoLike

DO 20 j=1,n-i
20 U(i+j)=U(2*n-i-j+1)
DO 30 j=n-i+1,n
30 U(i+j)=U(2*n-i-j+1)
10 continue
считая, что внутренние циклы 20 и 30 исполняются на двух парал-
лельно работающих вычислительных модулях.
Можно ли рассматривать эту программу как распараллелива-
ние внутреннего цикла в предыдущей программе?
Для ответа на поставленный вопрос проведем исследование
предлагаемых фрагментов моделированием их исполнения. Огра-
ничимся случаем n = 3, предполагая, что массив U(6) ранее был
инициализирован в рассматриваемой программе в соответствии со
следующей схемой (многоточие означает, что значения соответству-
ющих элементов массива для дальнейшего несущественны):
U
c ... b1 b a ...
1 2 3 4 5 6
1. Сначала рассмотрим работу программного фрагмента (А), де-
монстрируя результат работы каждой итерации внешнего цикла в
виде схемы заполнения массива U.
n=3 U(i+j)=U(7-i-j)
i=1 U(1+j)=U(6-1-j+1)=U(6-j)
j=1 U(2)=U(5)
j=2 U(3)=U(4)
j=3 U(4)=U(3)
U
c a b b a ...
1 2 3 4 5 6
i=2 U(2+j)=U(6-2-j+1)=U(5-j)
j=1 U(3)=U(4)
j=2 U(4)=U(3)
j=3 U(5)=U(2)
131