Public feed
#894124
#include <stdio.h>
#include <mpi.h>
#include <math.h>
main(int argc, char *argv[])
{
int i, p, rank;
int sum;
int data[]={1, 2, 3, 4, 5};
int mynumber;
int received_data;
MPI_Status status;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &p);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
mynumber = data[rank];
printf("rank=%d, number=%d\n", rank, mynumber);
if(rank == 0)
{
sum = 0;
sum += mynumber;
for(i=1; i<p; i++)
{
MPI_Recv(&received_data, 1, MPI_INT, i, 1, MPI_COMM_WORLD, &status);
sum += received_data;
}
printf("sum = %d", sum);
}
else
MPI_Send(&mynumber, 1, MPI_INT, 0, 1, MPI_COMM_WORLD);
MPI_Finalize();
}