Составители:
Рубрика:
Статические и автоматические сети полностью аналогичны
статическим и автоматическим переменным языка C.
Рассмотрим различия между статическими и автоматическими
сетями. Вот программа, иллюстрирующая автоматическую сеть:
# include<mpc.h>
# include<sys/utsname.h>
# define Nmin 3
# define Nmax 5
int[*]main(){repl n;
for (n=Nmin; n<=Nmax; n++){
auto net SimpleNet(n) anet;
struct utsname[anet]un;
[anet]unname(&un);
[anet] MPC_Printf("An automatic network of % d;
I’m on %s. \n",[anet]n,un.modename);
}
}
При входе в блок на первом витке цикла создается автоматическая
сеть из трех виртуальных процессоров (n=Nmin=3). При выходе из
этого витка она уничтожается. При входе в блок цикла на втором
витке создается новая автоматическая сеть из (теперь!) четырех
виртуальных процессоров, которая также прекращает существова-
ние при выходе из блока. К моменту начала выполнения очеред-
ного витка цикла эта сеть уже не существует. На последнем витке
создается сеть из пяти виртуальных процессоров (n=Nmax=5).
Поскольку каждый раз сеть создается заново, то имена ком-
пьютеров, распечатываемые функцией MPC_Printf, могут быть со-
вершенно различными.
Замечание. Переменная n распределена по всем компьютерам.
Ключевое слово repl (сокращение от replicated) информирует ком-
пилятор о том, что значения этой переменной у разных процессов
параллельной системы равны между собой.
Переменные, значения которых равны для различных процес-
сов сети, в mpC называются размазанными, а их значения называ-
ются размазанными значениями.
Компилятор контролирует свойство размазанности и преду-
преждает обо всех случаях, когда оно может быть нарушено.
176
Страницы
- « первая
- ‹ предыдущая
- …
- 173
- 174
- 175
- 176
- 177
- …
- следующая ›
- последняя »