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

UptoLike

1) если нет распределения итераций по процессорам (нет ди-
рективы PARALLEL), то по умолчанию операции присваивания вы-
полняются на том процессоре, где находится присваиваемый эле-
мент распределённого массива, а в случае наличия распределения
в соответствии с упомянутым распределением;
2) операция присваивания распределённым массивам всегда
производится на процессоре, где распределён данный массив .е.
принято неукоснительное выполнение "правила собственных вы-
числений").
В DVM-языках принимается второй вариант действий; при
этом явное указание распределения итераций многомерного цикла
должно находиться в строгом соответствии с "правилом собствен-
ных вычислений" и служит лишь для оптимизации вычислитель-
ного процесса. Для пояснения рассмотрим фрагмент:
DO i=1,n
C(i)=A(i)+B(i)
END DO
Если перед этим циклом нет директивы PARALLEL, то цикл будет
выполняться по "правилу собственных вычислений" (по умолча-
нию).
Если же перед циклом есть директива PARALLEL, то прежде
всего, она должна соответствовать "правилу собственных вычисле-
ний"; опять-таки цикл будет выполняться в соответствии с упомя-
нутым правилом.
Разница между этими случаями состоит в том, что при отсут-
ствии директивы PARALLEL система отслеживает принадлежность
элемента массива процессору перед каждой операцией, а при нали-
чии явного указания о распределении такое отслеживание не про-
водится, так что в последнем случае экономится время вычислений.
§ 5. Отображение задач
Набор задач, обрабатываемых системой, задается вектором за-
дач T, n компонента которого определяет задачу с номером n.
Для отображения задач на секции решетки виртуальных про-
цессоров используется директива MAP в следующем виде
CDVM$ MAP T(n) ONTO P(i
0
1
: i
00
1
, . . . , i
0
n
: i
00
n
),
166