Write a parallel program with mpi functions define an array


Write a parallel program with MPI functions to do the following

1) Define an array of size 1000.

2) Generate a random integer in the range of: 0 t0 999 for: n.

3) Generate n random integers in the range of: 0 to 1000 and save them in array.

4) For m (its value comes from the input) processes divide that array to (m-1) segments. All the segments except the last one must be equal (Note that the last segment may get bigger than other segments)

5) Each of process p1, p2, p3,..., pm-1 obtains the biggest number from its segment and send it to the process with rank = 0.

6) Process 0 receives a number from each process: p1, p2, p3,..., pm-1, finds the biggest number and print it.

Note: If m -1 is bigger n terminate the execution of the program with an appropriate message the shows the value of m-1 and n.

The following is a serial program. It may help.

//File name: a.c

#include

#include

#include

#define atmost 1000

int find(int* a, int from, int to){
int i, b;
printf("%d----%d\n", from,to);
b = a[from];
for(i = from + 1; i <= to; i++)
if(a[i] > b)
b = a[i];

Request for Solution File

Ask an Expert for Answer!!
C/C++ Programming: Write a parallel program with mpi functions define an array
Reference No:- TGS01010821

Expected delivery within 24 Hours