SC23 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

Workshops Archive

K-means Clustering: An Assignment for OpenMP, MPI, and CUDA/OpenCL


Workshop: EduHPC-23: Workshop on Education for High Performance Computing

Authors: Diego García-Álvarez (Universidad de Valladolid) and Arturo Gonzalez-Escribano (University of Valladolid, Spain)


Abstract: We introduce the sixth example in a series of assignments used in a Parallel Computing course to teach approaches to solving the same problem with different parallel programming models. This assignment is based on the K-means clustering algorithm. The program is intentionally designed to be straightforward and easily understandable for students, while also providing specific parallelization and optimization opportunities. It is a simpler example than the previously presented assignments in this series, focusing mainly on key base concepts that many students find complex to apply in a practical case: Race-conditions, reductions, and collective operations. It proposes a clear and guided parallelization and optimization strategy across the different programming models. This assignment can be used to establish a solid foundation before tackling more advanced concepts or parallel structures. This assignment was successfully used as a practical assignment in a Parallel Computing course in the third year of a Computer Engineering degree.





Back to EduHPC-23: Workshop on Education for High Performance Computing Archive Listing



Back to Full Workshop Archive Listing