5 int main(int argc, char *argv[]) {
8 int *sendbuf, *recvbuf;
9 MPI_Init(&argc, &argv);
10 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
11 MPI_Comm_size(MPI_COMM_WORLD, &size);
12 sendbuf = malloc(sizeof(int) * size);
13 recvbuf = malloc(sizeof(int) * size);
14 for (i = 0; i < size; i++) {
18 sendbuf[rank] = rank + 1;
19 MPI_Allreduce(sendbuf, recvbuf, size, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
20 printf("node %d has: ", rank);
21 for (i = 0; i < size; i++) {
22 printf("%d ", recvbuf[i]);