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

UptoLike

виртуальных процессоров), причём i блок отображается на i
виртуальный процессор.
2. При отображении взвешенными блоками указывается век-
тор весов WB размера NWB, (NP процессоров разбиваются на группы
(приблизительно) по NP/NWP процессоров и в каждой i группе
распределяется часть массива, соответствующая весу WB(i) упомя-
нутого вектора, i=1,2,...,NWP).
3. Отображение целым измерением означает, что данное из-
мерение не будет распределяться между процессорами (оно будет
отнесено одному процессору).
Замечание 1. Если присутствует опция ONTO T(n), то массив
отображается на ту часть процессоров, на которую отображена n
задача вектора задач Т.
Замечание 2. Распределение многомерного массива осуществ-
ляется независимым распределением каждого его измерения.
§ 3. Выpaвнивание массивов
В ряде случаев требуется согласованное распределение масси-
вов между прoцессорами; например, это требуется для присваива-
ния по "правилу собственных вычислений".
Для cогласованного отображения нескольких массивов исполь-
зуется директива ALLIGN (выровнять).
Рассмотрим фрагмент программы.
REAL A(N),B(N)
CDVM$ DISTRIBUTE A(BLOCK)
CDVM$ DISTRIBUTE B(BLOCK)
..................
DO {i}=n1,n2
B({i})=A(f({i}))
END DO
Пусть OWN(B(i)) номер виртуального процессора, на кото-
ром распределён элемент B(i). Ввиду "правила собственных
вычислений" оператор на i итерации будет выполняться на про-
цессоре OWN(B(i)). Если элемент A(f(i)) распределить на процес-
сор OWN(B(i)) для каждой итерации, то все данные будут нахо-
диться на одном процессоре.
164