Public feed #894124

Miscellany

public text v1 · immutable
Raw Edit
·published 2008-02-06 18:20 UTC
rendered paste body
#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();
}