Составители:
Рубрика:
# include <string.h>
# include <mpc.h>
# include <sys/utsname.h>
nettype Mesh (intm, int n)
{coord I=m,J=n;
parent [0,0]
# define MAXLEN 256
int[*] main()
{net Mesh (2,3) [host] mynet;
[mynet]:
{struct utsname un;
char me[MAXLEN], neighbour[MAXLEN]
subnet[mynet: I==0] row 0,
[mynet: I==1] row 1;
uname(&un);
strcpy(me,un.nodename);
[row 0]neighbour[]=[row 1]me[];
[row 1]neighbour[]=[row 0]me[];
MPC_Printf("I’m (%d, %d) from\" %S "\n",
"My neighbour (%d, %d) is on \%S \n\n",
I coordof mynet, J coordof mynet, me,
I coordof mynet+1,J coordof mynet, neighbour)
}
}
Здесь каждый виртуальный процессор сети mynet типа
Mesh(2,3) выводит на терминал пользователя имя компьютера, на
котором он размещен, а также имя компьютера, на который систе-
ма поместила ближайший виртуальный процессор соседней строки.
Выполнение присваивания
[row 0]neighbour[]=[row 1]me[]
состоит в пересылке содержимого строки row 1 проекции масси-
ва me на каждый виртуальный процессор в строку row 0 проекции
массива neighbour (опять-таки на каждый виртуальный процес-
сор).
В результате получаем проекцию распределенного массива
neighbour на виртуальный процессор сети mynet с координатами
(0,j), содержащую имя компьютера, на котором размещен вирту-
альный процессор. Причем проекция распределенного массива me
181
Страницы
- « первая
- ‹ предыдущая
- …
- 178
- 179
- 180
- 181
- 182
- …
- следующая ›
- последняя »