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

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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!