Waiting for answer This question has not been answered yet. You can hire a professional tutor to get the answer.

# Open MP project

Let A and B be N x N matrices of integers. Let X be a vector of integers of size N. Write the following programs: 1) A program that populates A and B with randomly generated numbers, computes the sum A + B, and prints out A, B, and A+B. 2) A program that populates A and B with randomly generated numbers, computes the product A * B, and prints out A, B, and A*B. 3) A program that populates A and X with randomly generated numbers, computes the product A*X, and prints out A, X, A*X. For each of the above programs, make sure you define N as a constant. These programs will be used in Part 2 in conjunction with OpenMP for your research on the topic. Using OpenMP, perform a comprehensive study of the parallelization of the above programs along the following variables: N (from small to medium to large), thread scheduling, and number of threads spawned. User level time execution, kernel level time execution, omp_get_wtime for performance analysis