A course project of Introduction to Parallel Systems and GPU programming class.
The aim of this project was to implement k-means clustering on CPU and parallelize it for GPU and GPU, using tiling. The implementations operate 4 dimensional data, clustering it in 4 clusters. The number of dimensions was chosen to fully demonstrate the advantages of GPU over CPU.