Student Outcomes in Parallelizing Recursive Matrix Multiply
Chris FietkiewiczVolume 10, Issue 1 (January 2019), pp. 21–23
https://doi.org/10.22369/issn.2153-4136/10/1/4BibTeX
@article{jocse-10-1-4, author={Chris Fietkiewicz}, title={Student Outcomes in Parallelizing Recursive Matrix Multiply}, journal={The Journal of Computational Science Education}, year=2019, month=jan, volume=10, issue=1, pages={21--23}, doi={https://doi.org/10.22369/issn.2153-4136/10/1/4} }
Students in a course on high performance computing were assigned the task of parallelizing an algorithm for recursive matrix multiplication. The objectives of the assignment were to: (1) design a basic approach for incorporating parallel programming into a recursive algorithm, and (2) optimize the speedup. Pseudocode was provided for recursive matrix multiplication, and students were required to first implement a serial version before implementing a parallel version. The parallel version had the following requirements: (1) use OpenMP to perform multithreading, and (2) use exactly 4 threads, where each thread computes one quadrant of the array product. Using a class size of 23 students, including undergraduate and graduate, approximately 70% of the students designed valid parallel solutions, and 13% achieved the optimal speedup of 4x. Common errors included recursively creating excessive threads, failing to parallelize all possible mathematical operations, and poor use of compiler directives for OpenMP.