Student Outcomes in Parallelizing Recursive Matrix Multiply

Chris Fietkiewicz

Volume 10, Issue 1 (January 2019), pp. 21–23

https://doi.org/10.22369/issn.2153-4136/10/1/4

PDF icon Download PDF

BibTeX
@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}
}
Copied to clipboard!

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.