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...
Main Authors: | , , |
---|---|
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 |