Parallel implementations of the cholesky decomposition on CPUs and GPUs

Detalhes bibliográficos
Autor(a) principal: Ruschel, João Paulo Tarasconi
Data de Publicação: 2016
Tipo de documento: Trabalho de conclusão de curso
Idioma: eng
Título da fonte: Repositório Institucional da UFRGS
Texto Completo: http://hdl.handle.net/10183/151001
Resumo: À medida que Unidades Centrais de Processamento (CPUs) e Gráfico (GPUs) evoluem progressivamente, diferentes abordagens e modelos para implementação de algoritmos com alta carga de dados devem ser estudados e comparados. Este trabalho compara diversos modelos de algoritmos e APIs de paralelização (como OpenMP, OpenCL e CUDA) para as plataformas CPU e GPU. Nós usamos a decomposição de Cholesky, um algoritmo aritmético de alto nível usado em diversos problemas de álgebra linear, como referência, devido a sua fácil paralelização, bem como apresentar alta dependência de dados entre os elementos. Diversos experimentos foram realizados, utilizando os diferentes modelos e APIs a fim de encontrar as técnicas que fornecem a melhor performance em cada plataforma. Tambémcomparamos essas implementações com soluções profissionais (como LAPACK e cuSOLVER), examinando as discrepâncias de implementação e performance. Os experimentos demonstram que a CPU tende a ter melhor performance que a GPU para esse tipo de algoritmo, devido à sua natureza intensiva em memória e o overhead intrínseco da transferência de dados, e que tentativas de micro-otimizações de código não oferecem nenhuma melhora de performance.
id UFRGS-2_9336fac4b9ac4c5000d7015821c92eb1
oai_identifier_str oai:www.lume.ufrgs.br:10183/151001
network_acronym_str UFRGS-2
network_name_str Repositório Institucional da UFRGS
repository_id_str
spelling Ruschel, João Paulo TarasconiNavaux, Philippe Olivier AlexandreDiener, Matthias2017-01-19T02:29:50Z2016http://hdl.handle.net/10183/151001001009773À medida que Unidades Centrais de Processamento (CPUs) e Gráfico (GPUs) evoluem progressivamente, diferentes abordagens e modelos para implementação de algoritmos com alta carga de dados devem ser estudados e comparados. Este trabalho compara diversos modelos de algoritmos e APIs de paralelização (como OpenMP, OpenCL e CUDA) para as plataformas CPU e GPU. Nós usamos a decomposição de Cholesky, um algoritmo aritmético de alto nível usado em diversos problemas de álgebra linear, como referência, devido a sua fácil paralelização, bem como apresentar alta dependência de dados entre os elementos. Diversos experimentos foram realizados, utilizando os diferentes modelos e APIs a fim de encontrar as técnicas que fornecem a melhor performance em cada plataforma. Tambémcomparamos essas implementações com soluções profissionais (como LAPACK e cuSOLVER), examinando as discrepâncias de implementação e performance. Os experimentos demonstram que a CPU tende a ter melhor performance que a GPU para esse tipo de algoritmo, devido à sua natureza intensiva em memória e o overhead intrínseco da transferência de dados, e que tentativas de micro-otimizações de código não oferecem nenhuma melhora de performance.As Central Processing Units (CPUs) and Graphical Processing Units (GPUs) get progressively better, different approaches and designs for implementing algorithms with high data load must be studied and compared. This work compares several different algorithm designs and parallelization APIs (such as OpenMP, OpenCL and CUDA) for both CPU and GPU platforms. We used the Cholesky decomposition, a high-level arithmetic algorithm used in many linear algebra problems, as the benchmarking algorithm, due to being easily parallelizable, and having a considerable data dependence between elements. We carried out various experiments using the different designs and APIs in order to find the techniques which yield the best performance for each platform. We also compared these implementations with state-of-the-art solutions (such as LAPACK and cu- SOLVER), and provided insights into the differences in implementation and performance. Our experiments showed us that parallelization on CPU tends to have a better performance than on GPU for this particular kind of algorithm, due to the intrinsic memory-intensive nature of the algorithm and memory transfer overhead, and that attempts at code micro-optimization do not offer any significant speedup.application/pdfengProcessamento paraleloHPCParallel programmingOpenMPOpenCLCUDACPUGPUCholeskyParallel implementations of the cholesky decomposition on CPUs and GPUsImplementação paralelas da decomposição de cholesky em CPU e GPU info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPorto Alegre, BR-RS2016Ciência da Computação: Ênfase em Ciência da Computação: Bachareladograduaçãoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL001009773.pdf001009773.pdfTexto completo (inglês)application/pdf391777http://www.lume.ufrgs.br/bitstream/10183/151001/1/001009773.pdfc6d5f9bd211a48410ee761a1d95ccde5MD51TEXT001009773.pdf.txt001009773.pdf.txtExtracted Texttext/plain113234http://www.lume.ufrgs.br/bitstream/10183/151001/2/001009773.pdf.txta89d9bb591ba730fd9d2aba85beb9570MD52THUMBNAIL001009773.pdf.jpg001009773.pdf.jpgGenerated Thumbnailimage/jpeg1088http://www.lume.ufrgs.br/bitstream/10183/151001/3/001009773.pdf.jpg746f750bb0ddbe1b2ad451525edab1bfMD5310183/1510012021-05-07 04:47:26.428937oai:www.lume.ufrgs.br:10183/151001Repositório de PublicaçõesPUBhttps://lume.ufrgs.br/oai/requestopendoar:2021-05-07T07:47:26Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Parallel implementations of the cholesky decomposition on CPUs and GPUs
dc.title.alternative.pt.fl_str_mv Implementação paralelas da decomposição de cholesky em CPU e GPU
title Parallel implementations of the cholesky decomposition on CPUs and GPUs
spellingShingle Parallel implementations of the cholesky decomposition on CPUs and GPUs
Ruschel, João Paulo Tarasconi
Processamento paralelo
HPC
Parallel programming
OpenMP
OpenCL
CUDA
CPU
GPU
Cholesky
title_short Parallel implementations of the cholesky decomposition on CPUs and GPUs
title_full Parallel implementations of the cholesky decomposition on CPUs and GPUs
title_fullStr Parallel implementations of the cholesky decomposition on CPUs and GPUs
title_full_unstemmed Parallel implementations of the cholesky decomposition on CPUs and GPUs
title_sort Parallel implementations of the cholesky decomposition on CPUs and GPUs
author Ruschel, João Paulo Tarasconi
author_facet Ruschel, João Paulo Tarasconi
author_role author
dc.contributor.author.fl_str_mv Ruschel, João Paulo Tarasconi
dc.contributor.advisor1.fl_str_mv Navaux, Philippe Olivier Alexandre
dc.contributor.advisor-co1.fl_str_mv Diener, Matthias
contributor_str_mv Navaux, Philippe Olivier Alexandre
Diener, Matthias
dc.subject.por.fl_str_mv Processamento paralelo
topic Processamento paralelo
HPC
Parallel programming
OpenMP
OpenCL
CUDA
CPU
GPU
Cholesky
dc.subject.eng.fl_str_mv HPC
Parallel programming
OpenMP
OpenCL
CUDA
CPU
GPU
Cholesky
description À medida que Unidades Centrais de Processamento (CPUs) e Gráfico (GPUs) evoluem progressivamente, diferentes abordagens e modelos para implementação de algoritmos com alta carga de dados devem ser estudados e comparados. Este trabalho compara diversos modelos de algoritmos e APIs de paralelização (como OpenMP, OpenCL e CUDA) para as plataformas CPU e GPU. Nós usamos a decomposição de Cholesky, um algoritmo aritmético de alto nível usado em diversos problemas de álgebra linear, como referência, devido a sua fácil paralelização, bem como apresentar alta dependência de dados entre os elementos. Diversos experimentos foram realizados, utilizando os diferentes modelos e APIs a fim de encontrar as técnicas que fornecem a melhor performance em cada plataforma. Tambémcomparamos essas implementações com soluções profissionais (como LAPACK e cuSOLVER), examinando as discrepâncias de implementação e performance. Os experimentos demonstram que a CPU tende a ter melhor performance que a GPU para esse tipo de algoritmo, devido à sua natureza intensiva em memória e o overhead intrínseco da transferência de dados, e que tentativas de micro-otimizações de código não oferecem nenhuma melhora de performance.
publishDate 2016
dc.date.issued.fl_str_mv 2016
dc.date.accessioned.fl_str_mv 2017-01-19T02:29:50Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/151001
dc.identifier.nrb.pt_BR.fl_str_mv 001009773
url http://hdl.handle.net/10183/151001
identifier_str_mv 001009773
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Repositório Institucional da UFRGS
collection Repositório Institucional da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/151001/1/001009773.pdf
http://www.lume.ufrgs.br/bitstream/10183/151001/2/001009773.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/151001/3/001009773.pdf.jpg
bitstream.checksum.fl_str_mv c6d5f9bd211a48410ee761a1d95ccde5
a89d9bb591ba730fd9d2aba85beb9570
746f750bb0ddbe1b2ad451525edab1bf
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv
_version_ 1801224521590505472