Clustering is the task of assigning a set of objects into groups (clusters) so that objects in the same group are more similar to each other than to those in other groups. In particular, K-means is a clustering algorithm that calculates the cluster with the nearest mean for each object. To achieve this, it uses a function like Euclidean or Manhattan distance. Our objective is to exploit our heterogeneous computing environment, that integrates an Intel Core i7-6700K chip, 2x NVIDIA TITAN X and an Intel Altera Terasic Stratix V DE5-NET FPGA, to run K-means as fast as possible.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech