logo
Лекции - Чернышева

Программирование «Трубы»

LinkCB_t*PrevLink, *NextLink;

Const int Reg=7; int error; …

Сособ 1:

If (MyProcID==0)

NextLink = ConnectLink(1, reg, &error);

If (MyProcID!=0) && (MyProcID!=nProcs-1) {

PrevLink = ConnectLink (MyProcID -1, reg, &error);

NextLink = ConnectLink (MyProcID+1, reg, &error);

}

If (MyProcID== nProcs-1)

PrevLink = ConnectLink (nProcs-2, reg, &error);

nProcs=5

nProcs-1=4

Связь устанавливается за nProcs-1 тактов по времени.

Сособ 2:

If (MyProcID!=0) PrevLink = ConnectLink (MyProcID -1, reg, &error);

If (MyProcID!= nProcs-1) NextLink = ConnectLink (MyProcID+1, reg, &error);

Сособ 3:

If (MyProcID%2) {# // Нечетные процессы

PrevLink = ConnectLink(MyProcID -1, reg, &error);

If (MyProcID!=nProcs-1) {NextLink = ConnectLink (MyProcID+1, reg, &error);}

else { // Четные процессы

If (MyProcID!=nProcs-1) NextLink = ConnectLink (MyProcID+1, reg, &error);

If (MyProcID!=0) PrevLink = ConnectLink (MyProcID -1, reg, &error);

}