📄 scatter_allgather.c
字号:
#include <mpi.h>
#include <stdio.h>
#include <string.h>
#define MSGLEN 50
main(int argc,char **argv)
{
int i;
int rank, size;
int nchar;
char sendbuf[MSGLEN];
char recvbuf[MSGLEN];
char *realmsg = "Hello there!";
MPI_Status status;
int msglen;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
if(rank==0)
{
strcpy(sendbuf, realmsg);
}
strcpy(recvbuf, "NUL\0");
msglen = strlen(realmsg)+1;
printf("Before Scatter: on rank %d msg = <%s>\n", rank, recvbuf);
MPI_Scatter(sendbuf,msglen/size,MPI_CHAR,recvbuf,msglen/size,MPI_CHAR,0,MPI_COMM_WORLD);
printf("After Scatter: on rank %d msg = <%s>\n", rank, recvbuf);
MPI_Allgather(sendbuf,msglen,MPI_CHAR,recvbuf,msglen,MPI_CHAR,MPI_COMM_WORLD);
printf(" After ALL Gather: on rank %d msg = <%s>\n",rank,recvbuf);
MPI_Finalize();
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -