Составители:
Рубрика:
Замечание. В отличие от обычной директивы параллельного
цикла, где на каждом процессоре решетки виртуальных процес-
соров выполняется непрерывный диапазон итераций цикла, здесь
каждая итерация цикла выполняется на своей секции данной ре-
шетки (секции могут меняться).
§ 6. Соседние общие данные
Общими данными в системе DVM считаются те данные, кото-
рые вычисляются на одних процессорах, а используются на других.
Общие данные делятся на четыре группы:
1) соседние (общие) данные (shadow),
2) удаленные (общие) данные (remote),
3) редукционные (общие) данные (reduce),
4) пересеченные (общие) данные (across).
Ниже рассмотрим использование соседних общих данных.
Пример ("присваивание в цикле").
CDVM$ PARALLEL (i) ON B(i), SHADOW_RENEW(A(d1:d2))
DO i=1+d1, N-d2
B(i)=A(i-d1)+A(i+d2)
END DO
Cпецификация SHADOW_RENEW указывает на то, что в данном цик-
ле требуются значения общих данных из массива A, причем d1 —
размер требуемых данных от "левого соседа", а d2 — размер тре-
буемых данных от "правого соседа".
Для доступа к данным, размещенным на других процессорах,
используются так называемые теневые грани массива.
Теневую грань можно представить себе буфером (хотя в дей-
ствительности он может и не быть таковым), содержащим в себе
"непрерывное"продолжение локальной секции массива, находяще-
гося в памяти процессора.
Перед выполнением цикла требуемые данные автоматически
пересылаются с соседних процессоров в теневые грани массива A на
каждом процессоре. Доступ к этим данным при выполнении цикла
ничем не отличается от доступа к данным, первоначально разме-
щенным на процессоре.
168
Страницы
- « первая
- ‹ предыдущая
- …
- 165
- 166
- 167
- 168
- 169
- …
- следующая ›
- последняя »