MPI_Isend
在 MPI 中,有诸如和之类的非阻塞调用MPI_Irecv
。
如果我正在处理 p2p 项目,则服务器会监听许多客户端。
一种方法:
for(int i = 1; i < highest_rank; i++){
MPI_Irecv(....,i,....statuses[i]); //listening to all slaves
}
while(true){
for( int i = 1; i < highest_rank; i++){
checkStatus(statuses[i])
if true do somthing
}
我可以做到的另一种旧方法是:
Server creating many POSIX threads, pass in a function,
that function will call MPI_Recv and loop forever.
从理论上讲,哪一个会在服务器端执行得更快?如果有另一种更好的方法来编写服务器,也请告诉我。