0
在这个mpi程序只工作从属节点。如何将其修改为工作主也。因为主人的工作也提高了系统的性能。如何提高这个程序的工作主也
int A,B,C, slaveid,recvid,root, rank,size;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
/*-------------------------- master ------------------------------*/
if(rank == 0){
N =10;
for(slaveid=1; slaveid<size; slaveid++){
MPI_Send(&N, 1, MPI_INT, slaveid, 1, MPI_COMM_WORLD);
}
for(recvid=1; recvid<size; recvid++){
MPI_Recv(&A, 1, MPI_INT, recvid, 2, MPI_COMM_WORLD, &status);
printf(" My id = %d and i send = %d\n",recvid,A);
}
}
/*-------------------------- Slave ------------------------------*/
if(rank>0){
MPI_Recv(&B, 1, MPI_INT, 0, 1, MPI_COMM_WORLD, &status);
C = B*3;
MPI_Send(&C, 1, MPI_INT, 0, 2, MPI_COMM_WORLD);
}
MPI_Finalize();
}
问题是我想只使用MPI函数来实现。不是功能电话。 – Alex 2013-05-03 13:25:55
我不明白你的评论 - 你想使用MPI函数来处理你的主进程? – 2013-05-03 13:56:23
是的。我的意思是某种MPI_Bcast()或其他机制 – Alex 2013-05-03 15:48:35