Search for question
Question

Assignment 1 Due: before midnight of Jan 29, 2024 The following code computes row sums of matrix data [100] [100] by 2 processes. #include #include #include #define

generate_data(i, j) int main(int argc, char **argv) { int i, j, pid, np, mtag, count; double t0, tl; int data [100] [100], row_sum [100] ; MPI Status status; MPI Request req_s, req_r; MPI Init(&argc, &argv ); MPI Comm_rank (MPI_COMM_WORLD, &pid); MPI Comm size (MPI COMM WORLD, &np); if (pid 0) { // generate data[] for (i=0; i<50; i++) for(j=0; j<100; j++) mtag = 1 ; == } MPI_Isend (data, 5000, MPI_INT, 1, mtag, MPI_COMM_WORLD, &req_s) ; for (i=50; i<100; i++) for(j=0; j<100; j++) data[i][j] data[i][j] = generate_data(i,j); } for (i=50; i<100; i++) { row sum[i] = 0; (i) + (j) * (j) = } generate_data (i, j); for(j=0; j<100; j++) MPI_Wait (&req_s, &status) ; /*** receive computed row sums from mtag = 2; MPI Recv (row_sum, 50, MPI INT, 1, mtag, MPI COMM_WORLD, &status); for (i=0; i<100; i++) { } else { /*** pid = 1 ; row_sum [i] += data[i][j]; printf(" %d ", row_sum[i]); if (i%10 == ==9) printf("\n"); == 1 ***/ for (i=0; i<50; i++) { row sum[i] = 0 ; for(j=0; j<100; j++) mtag MPI Recv (data, 5000, MPI_INT, 0, mtag, MPI_COMM_WORLD, &status) ; *** pid 1