Please use this identifier to cite or link to this item:
https://repositorio.ufu.br/handle/123456789/43738
Full metadata record
DC Field | Value | Language |
---|---|---|
dc.creator | Praxedes, Vinícius Henrique Almeida | - |
dc.date.accessioned | 2024-10-30T17:38:50Z | - |
dc.date.available | 2024-10-30T17:38:50Z | - |
dc.date.issued | 2024-04-25 | - |
dc.identifier.citation | PRAXEDES, Vinícius Henrique Almeida. Paralelização do Algoritmo K-means em GPUs NVIDIA Utilizando a Biblioteca Numba. 2024. 75 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Universidade Federal de Uberlândia, Uberlândia, 2024. | pt_BR |
dc.identifier.uri | https://repositorio.ufu.br/handle/123456789/43738 | - |
dc.language | por | pt_BR |
dc.publisher | Universidade Federal de Uberlândia | pt_BR |
dc.rights | Acesso Aberto | pt_BR |
dc.rights.uri | http://creativecommons.org/licenses/by-sa/3.0/us/ | * |
dc.subject | K-means | pt_BR |
dc.subject | agrupamento de dados | pt_BR |
dc.subject | GPGPU | pt_BR |
dc.subject | CUDA | pt_BR |
dc.subject | Numba | pt_BR |
dc.subject | computação paralela | pt_BR |
dc.title | Paralelização do algoritmo K-means em GPUs NVIDIA utilizando a biblioteca Numba | pt_BR |
dc.title.alternative | Parallelization of the K-means algorithm in NVIDIA GPUs using the Numba library | pt_BR |
dc.type | Trabalho de Conclusão de Curso | pt_BR |
dc.contributor.advisor1 | Abdala, Daniel Duarte | - |
dc.contributor.advisor1Lattes | http://lattes.cnpq.br/0083781586520627 | pt_BR |
dc.contributor.referee1 | Souza, Júlia Tannús de | - |
dc.contributor.referee1Lattes | http://lattes.cnpq.br/1193382203067650 | pt_BR |
dc.contributor.referee2 | Santos, Anderson Rodrigues dos | - |
dc.contributor.referee2Lattes | http://lattes.cnpq.br/3752226356973936 | pt_BR |
dc.creator.Lattes | http://lattes.cnpq.br/9814960769050389 | pt_BR |
dc.description.degreename | Trabalho de Conclusão de Curso (Graduação) | pt_BR |
dc.description.resumo | O K-means é um algoritmo notório de agrupamento de dados que vem sendo usado extensivamente desde sua concepção no meio do século XX. Utilizando-o como exemplo de implementação, essa pesquisa visou implementar uma versão paralelizada, usando o processamento vetorial de uma GPU NVIDIA, para obter um ganho de performance significativo, sem afetar a precisão dos resultados. Buscou-se realizar essa implementação utilizando ferramentas de programação de mais alto-nível de abstração, especificamente a linguagem Python e as bibliotecas Numba, Numpy e Pandas, explorando a possibilidade de se atingir grandes aumentos em velocidade de execução sem abrir mão da facilidade de desenvolvimento proporcionada pelo Python, se comparada com a complexidade de realizar uma implementação equivalente em C++ utilizando a API CUDA diretamente. Foi constatada maior velocidade de execução em C++ se comparado ao Python em testes com implementações paralelas em GPU de soma de vetores unidimensionais com mais de 400 milhões de elementos, C++ sendo cerca de 22,63x mais rápido que Python. Não obstante, ao se testar implementações seriais e paralelas em Python do algoritmo k-means foram obtidos ganhos de performance dentro da magnitude esperada ao se comparar com resultados de outros trabalhos da literatura com objetivos semelhantes de otimização do k-means. Esses experimentos foram realizados utilizando cinco conjuntos de dados com o número de instâncias variando entre 3.810 e 13.932.632 e o número de features entre 3 a 50. Um aumento médio de peformance entre 9x a 42x foi atingido com sucesso sem prejudicar mensuravelmente a qualidade dos resultados, ao se comparar uma implementação serial em Python usando as bibliotecas Pandas e Numpy e uma paralela em Python usando, além dessas, a biblioteca Numba para rodar funções em uma GPU NVIDIA. Além disso foi observado que o ganho de performance tende a aumentar para conjuntos de dados maiores. | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.publisher.course | Ciência da Computação | pt_BR |
dc.sizeorduration | 75 | pt_BR |
dc.subject.cnpq | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO | pt_BR |
dc.orcid.putcode | 170682511 | - |
Appears in Collections: | TCC - Ciência da Computação |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
ParalelizaçãoAlgoritmoKmeans.pdf | TCC | 4.56 MB | Adobe PDF | View/Open |
This item is licensed under a Creative Commons License