Question: This project is designed to show the performance improvement and overhead of multi-threading with OpenMP APIs for the matrix multiplication application. There are multiple ways

This project is designed to show the performance improvement and overhead of multi-threading with OpenMP APIs for the matrix multiplication application. There are multiple ways to calculate matrix multiplication [1]. Only straightforward calculation algorithms are required for memory reference locality purposes. More advanced algorithm such as Strassen's algorithm is not required You need to 1) use at least two direct methods (refer to [2] for more details) to implement matrix multiplication (mmul) in Clanguage; 2) calculate the execution time of matrix multiplication for certain number of for-loops (i.e. "accuracy" loops used in previous homework assignment); 3) use OpenMP with multi-threading to speed up each method of matrix multiplication; 4) change the number of threads, matrix size and number of for-loops, to show the overhead of multi-threading; 5) Submit both your project report and C source code. Minimum requirement of project report 1. Summarize your results (execution time) in a data sheet with a) at least two columns for results 2. Plot a graph with the execution time of mmul with different numbers of threads, show the 3. Explain your results in the datasheet and graph with a) locality of reference and b) multi from two different mmul implementations, b) rows for results from different number of threads overhead of multithreading threading. This project is designed to show the performance improvement and overhead of multi-threading with OpenMP APIs for the matrix multiplication application. There are multiple ways to calculate matrix multiplication [1]. Only straightforward calculation algorithms are required for memory reference locality purposes. More advanced algorithm such as Strassen's algorithm is not required You need to 1) use at least two direct methods (refer to [2] for more details) to implement matrix multiplication (mmul) in Clanguage; 2) calculate the execution time of matrix multiplication for certain number of for-loops (i.e. "accuracy" loops used in previous homework assignment); 3) use OpenMP with multi-threading to speed up each method of matrix multiplication; 4) change the number of threads, matrix size and number of for-loops, to show the overhead of multi-threading; 5) Submit both your project report and C source code. Minimum requirement of project report 1. Summarize your results (execution time) in a data sheet with a) at least two columns for results 2. Plot a graph with the execution time of mmul with different numbers of threads, show the 3. Explain your results in the datasheet and graph with a) locality of reference and b) multi from two different mmul implementations, b) rows for results from different number of threads overhead of multithreading threading
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
