Составители:
Рубрика:
}
# define N 3 int[*] main(){net AnotherSimpleNet(N);
[host] mynet;
[mynet] MPC_Printf("Hallo, world! \n");
}
Здесь неявная спецификация сети заменена на явную. По умолча-
нию родитель имеет нулевые координаты в сети (иначе, например,
parent[n-1]).
§ 7. Синхронизация работы сети
Рассмотрим следующую программу.
# include <mpc.h>
# define N 5
int[*] main()
{net SimpleNet(N) mynet;
[mynet]:
{int my_coordinate;
my_coordinate=I coordof mynet;
if (my_coordinate %2==0)
MPC_Printf("Hallo, even world! \n");
[(N)mynet] MPC_Barrier();
if (my_coordinate %2==1)
MPC_Printf("Hallo, odd world! %n");
}
}
Эта программа выводит сообщение от виртуальных процессоров с
нечетными координатами только после того, как будут выведены
все сообщения от всех виртуальных процессоров с четными номе-
рами.
Следует заметить, что MPC_Barrier — это сетевая функция.
Это означает, что барьер установлен только для процессоров сети
mynet.
В то время, как базовые функции выполняются для всех про-
цессов программы (это — обязательное условие), сетевые функции
179
Страницы
- « первая
- ‹ предыдущая
- …
- 176
- 177
- 178
- 179
- 180
- …
- следующая ›
- последняя »