Complete the program 'Bcast-Reduce-Assignment.c' (Refer to 'Bcast-Reduce-Example.c') to make the program have the output as follows if we run the program using 2 processes. The input sequence is: 0 1...


Complete the program 'Bcast-Reduce-Assignment.c' (Refer to 'Bcast-Reduce-Example.c') to make the program have the output as follows if we run the program using 2 processes.


          The input sequence is:


          0 1 2 3


          The output sequence is:


          0 2 6 12



#include
#include
#include




int main(void)

{
    int my_rank, comm_sz;
    int i;
    int Count = 4;
    int Number[4];
    int Result[4];


    MPI_Init(NULL, NULL);


    MPI_Comm_size(MPI_COMM_WORLD, &comm_sz);
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);




    if(my_rank == 0)
    {
        printf("The input sequence is: \n");


        for (i = 0; i < count;="">
        {
            Number[i] = i;
            printf("%d ", Number[i]);
        }


        printf("\n");
    }


    // Process 0 sends data to all of the processes
    MPI_Bcast(Number, Count, MPI_INT, 0, MPI_COMM_WORLD);


    for (i = 0; i < count;="">

      Number[i] += my_rank;


    MPI_Reduce(       , Result,       , MPI_INT, MPI_PROD, 0, MPI_COMM_WORLD);


    // Print out the result
    if (my_rank == 0)
    {
        printf("The output sequence is: \n");




        printf("\n");
    }


    MPI_Finalize();


    return 0;
}




Jun 10, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here