Question: C omplete the program 'Ring-1.c' to make the program work well for any number of processes specified by users and have one possible output sequence

Complete the program 'Ring-1.c' to make the program work well for any number of processes specified by users and have one possible output sequence as follows if we run the program using 4 processes.

Process 0: Token value < 4 > is received from process 3

Process 2: Token value < 2 > is received from process 1

Process 1: Token value < 1 > is received from process 0

Process 3: Token value < 3 > is received from process 2

#include #include #include

int main(void) { int comm_sz, my_rank; MPI_Init(NULL, NULL); MPI_Comm_size(MPI_COMM_WORLD, &comm_sz); MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); int token = 1; MPI_Send(&token, 1, MPI_INT, (my_rank + 1) % comm_sz, 0, MPI_COMM_WORLD);

if (my_rank == 0) { MPI_Recv(&token, 1, MPI_INT, comm_sz - 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); /* print out the message */ printf("Process %d received token value < %d > from process %d ", my_rank, token, comm_sz - 1); }

else { MPI_Recv(&token, 1, MPI_INT, my_rank - 1, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

/* print out the message */ printf("Process %d received token value < %d > from process %d ", my_rank, token, my_rank - 1);

}

MPI_Finalize();

return 0; }

What am i missing

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!