Parallel Implementation of K-Means Algorithm on FPGA

The K-means algorithm is widely used to find correlations between data in different application domains. However, given the massive amount of data stored, known as Big Data, the need for high-speed processing to analyze data has become even more critical, especially for real-time applications. A sol...

Full description

Bibliographic Details
Main Authors: Leonardo A. Dias, Joao C. Ferreira, Marcelo A. C. Fernandes
Format: Article
Language:English
Published: IEEE 2020-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/9016001/
id doaj-789ce812de3b41fa818b44609aa45fa2
record_format Article
spelling doaj-789ce812de3b41fa818b44609aa45fa22021-03-30T02:09:11ZengIEEEIEEE Access2169-35362020-01-018410714108410.1109/ACCESS.2020.29769009016001Parallel Implementation of K-Means Algorithm on FPGALeonardo A. Dias0https://orcid.org/0000-0002-8442-3291Joao C. Ferreira1https://orcid.org/0000-0001-7471-3888Marcelo A. C. Fernandes2https://orcid.org/0000-0001-7536-2506Laboratory of Machine Learning and Intelligent Instrumentation (LMLII), nPITI-IMD, Federal University of Rio Grande do Norte, Natal, BrazilINESC TEC, University of Porto, Porto, PortugalLaboratory of Machine Learning and Intelligent Instrumentation (LMLII), nPITI-IMD, Federal University of Rio Grande do Norte, Natal, BrazilThe K-means algorithm is widely used to find correlations between data in different application domains. However, given the massive amount of data stored, known as Big Data, the need for high-speed processing to analyze data has become even more critical, especially for real-time applications. A solution that has been adopted to increase the processing speed is the use of parallel implementations on FPGA, which has proved to be more efficient than sequential systems. Hence, this paper proposes a fully parallel implementation of the K-means algorithm on FPGA to optimize the system's processing time, thus enabling real-time applications. This proposal, unlike most implementations proposed in the literature, even parallel ones, do not have sequential steps, a limiting factor of processing speed. Results related to processing time (or throughput) and FPGA area occupancy (or hardware resources) were analyzed for different parameters, reaching performances higher than 53 millions of data points processed per second. Comparisons to the state of the art are also presented, showing speedups of more than 15573× over a partially serial implementation.https://ieeexplore.ieee.org/document/9016001/Parallel implementationFPGAK-means algorithmreconfigurable computing
collection DOAJ
language English
format Article
sources DOAJ
author Leonardo A. Dias
Joao C. Ferreira
Marcelo A. C. Fernandes
spellingShingle Leonardo A. Dias
Joao C. Ferreira
Marcelo A. C. Fernandes
Parallel Implementation of K-Means Algorithm on FPGA
IEEE Access
Parallel implementation
FPGA
K-means algorithm
reconfigurable computing
author_facet Leonardo A. Dias
Joao C. Ferreira
Marcelo A. C. Fernandes
author_sort Leonardo A. Dias
title Parallel Implementation of K-Means Algorithm on FPGA
title_short Parallel Implementation of K-Means Algorithm on FPGA
title_full Parallel Implementation of K-Means Algorithm on FPGA
title_fullStr Parallel Implementation of K-Means Algorithm on FPGA
title_full_unstemmed Parallel Implementation of K-Means Algorithm on FPGA
title_sort parallel implementation of k-means algorithm on fpga
publisher IEEE
series IEEE Access
issn 2169-3536
publishDate 2020-01-01
description The K-means algorithm is widely used to find correlations between data in different application domains. However, given the massive amount of data stored, known as Big Data, the need for high-speed processing to analyze data has become even more critical, especially for real-time applications. A solution that has been adopted to increase the processing speed is the use of parallel implementations on FPGA, which has proved to be more efficient than sequential systems. Hence, this paper proposes a fully parallel implementation of the K-means algorithm on FPGA to optimize the system's processing time, thus enabling real-time applications. This proposal, unlike most implementations proposed in the literature, even parallel ones, do not have sequential steps, a limiting factor of processing speed. Results related to processing time (or throughput) and FPGA area occupancy (or hardware resources) were analyzed for different parameters, reaching performances higher than 53 millions of data points processed per second. Comparisons to the state of the art are also presented, showing speedups of more than 15573× over a partially serial implementation.
topic Parallel implementation
FPGA
K-means algorithm
reconfigurable computing
url https://ieeexplore.ieee.org/document/9016001/
work_keys_str_mv AT leonardoadias parallelimplementationofkmeansalgorithmonfpga
AT joaocferreira parallelimplementationofkmeansalgorithmonfpga
AT marceloacfernandes parallelimplementationofkmeansalgorithmonfpga
_version_ 1724185747047579648