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.