#include #include void main(int argc, char **argv) { float a, b; int n, np, id; void GetData(float*, float*, int*, int); MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &np); MPI_Comm_rank(MPI_COMM_WORLD, &id); GetData(&a, &b, &n, id); printf(" id = %d, a = %f, b = %f, n = %d\n",id,a,b,n); MPI_Barrier(MPI_COMM_WORLD); MPI_Finalize(); return; } void GetData(float *a, float *b, int *n, int my_rank) { int ierr; if ( my_rank == 0 ) { printf("Enter a, b, n:\n"); scanf("%f %f %d", a, b, n); } ierr = MPI_Bcast(a,1,MPI_FLOAT,0,MPI_COMM_WORLD); ierr = MPI_Bcast(b,1,MPI_FLOAT,0,MPI_COMM_WORLD); ierr = MPI_Bcast(n,1,MPI_INT,0,MPI_COMM_WORLD); return; }