rendered paste body#include <stdio.h>#include "mpi.h"int main( argc, argv )int argc;char **argv;{ int ierr; int rank, size; int a[800]; int b[800]; int c[800]; for (int i=0;i<800;i++) { b[i]=i; c[i]=i+4; } int ista,iend; MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &size ); MPI_Comm_rank( MPI_COMM_WORLD, &rank ); ista = (800/size)*rank; iend = ista+(800/size); int A=0,B=0,C=0; for (int i=ista;i<=iend;i++) { a[i] = b[i] + c[i]; A+=a[i]; B+=b[i]; C+=c[i]; } printf("%d +%d = %d on processor #%d of processors #%d\n",B,C,A,rank,size); int V[size]; int R; MPI_Status status; int received; if (rank == 0) { received = 1; } V[rank]=A; if (rank == 0) { while (received<size) { ierr = MPI_Recv(&R,1,MPI_INT, MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD, &status); V[status.MPI_SOURCE]=R; received++; } } else { ierr = MPI_Send(&A,1,MPI_INT,0,1,MPI_COMM_WORLD); } if (rank == 0 ) { printf("Master processor #0 has all results as following:\n"); for (int i=0;i<size;i++) { printf("%d ",V[i]); } printf("\n"); } MPI_Finalize(); return 0;}