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

UptoLike

§ 4. Статическая сеть
Начнем с примера статической сети:
# include <mpc.h>
# include<sys/utsname.h>
# define Nmin 3
# define Nmax 5
int[*] main()
{repl n;
for (n=Nmin; n<=Nmax; n++){
static net SimpleNet(n) snet;
struct utsname[snet]un;
[snet]unname(&un);
[snet] MPC_Printf("A static network of %d;
I’m on %s.\n",[snet]n,un.modename);
}
}
При входе в блок здесь на первом витке цикла создается сеть из
трех виртуальных процессоров. При выходе из блока она не уничто-
жается, а становится невидимой, так что блок является не областью
существования, а областью видимости сети (как и предписывается
в языке C).
При выполнении блока на последующих витках новые сети не
создаются, а становится видна та статическая сеть из трех вирту-
альных процессоров, которая была создана при первом вхождении
в блок (на первом витке цикла), и которая, тем самым, не зависит
от параметра n.
В результате работы программы несколько раз будет напечатан
один и тот же набор имен компьютеров.
§ 5. Тип сети
Обязательной частью определения сети является ее тип. В рас-
смотренных ранее примерах определение сетевого типа SimpleNet
находится среди прочих стандартных определений языка mpC в
файле mpc.h, который включается в программу с помощью дирек-
тивы #include.
177