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

UptoLike

Функции, которые обязательно вызываются всеми процессами
параллельной программы, называются базовыми.
Функции, которые не требуют вызова всеми процессами, на-
зываются узловыми. В нашем примере узловой функцией является
MPC_Printf.
Узловые функции не связаны явно с заданием параллелизма
или со взаимодействием процессов. Они могут вызываться как от-
дельным процессом, так и группой процессов.
#include<mpc.h>
#include<sys/utsname.h>
#define N 3
int[*] main()
{net SimpleNet(N) mynet;
struct utsname[mynet]un;
[mynet]unname(&un);
[mynet] MPC_Printf("Hello, world!
I’m on 705 \n",un.modename);}
Рассматриваемая программа выводит на терминал пользователся
сообщения:
"Hello, world!"
имя компьютера, на котором процесс выполняется.
При этом определяется структура un, распределенная по сети
mynet (то есть по всем процессам сети). Эти же процессы выпол-
няют вызов функции unname, а поле nodename структуры un будет
содержать ссылку на имя того же компьютера, на котором выпол-
няется процесс.
Локальные копии распределенных переменных называются
проекциями этих переменных на процессорах (или на процессах).
§ 3. Автоматические сети
Область видимости сети mynet ограничена блоком, в кото-
ром эта сеть определяется. При выходе из этого блока процессы
программы, захваченные под виртуальные процессоры сети mynet,
освобождаются и могут быть использованы для создания других
сетей. Такие сети называются автоматическими.
Сети, время жизни которых ограничено лишь временем выпол-
нения программы, называются статическими.
175