#include #include #include int main(int argc, char **argv ) { int myid, numprocs; int ans,i,w,index; int complete = 0; int iter = 50; int *a,*b,*c,*worker; int dispatched = 0; int returned = 0; int Unit_of_Work[2]; int *result; int Work = 1; int idle = -1; MPI_Request *recv_req; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Comm_rank(MPI_COMM_WORLD,&myid); if (numprocs >= 2) { if (myid == 0) // Master { a = (int *) malloc(iter*sizeof(int)); b = (int *) malloc(iter*sizeof(int)); c = (int *) malloc(iter*sizeof(int)); worker = (int *) malloc(numprocs*sizeof(int)); result = (int *) malloc(numprocs*sizeof(int)); recv_req = (MPI_Request *) malloc(numprocs*sizeof(MPI_Request)); for (i=0; i