Технология программирования для распределенных параллельных систем. Демьянович Ю.К - 45 стр.

UptoLike

Второй способ (симметричное решение). Все процессы выпол-
няют один и тот же алгоритм стиле SIMD Single Instruction
Multiple Data). Здесь каждый процесс отп равляет свое з начение
всем остальным, затем все процессы вычисляют минимум и макси-
мум из n значений (см. рис. 5).
Рис. 5. Структура взаимодействия при симметричном ре шен ии
chan values[n](int);
process P[i=0 to n-1] {
int v; # считается, что v инициализирована
int new, smallest=v, largest=v; # начальное условие
# отправить мое значение всем остальным процессам:
for [j=0 to n-1 st j!=i] # для каждого j от нуля до n-1,
# исключая j=i
send values[j](v);
# собрать значения, найти и
# заполнить минимум и максимум:
for [j=1 to n-1] {
receive values[j](v);
if (new<smallest)
smallest=new;
if (new>largest)
46