Mostrar registro simples

dc.contributor.advisorNavaux, Philippe Olivier Alexandrept_BR
dc.contributor.authorRuschel, João Paulo Tarasconipt_BR
dc.date.accessioned2017-01-19T02:29:50Zpt_BR
dc.date.issued2016pt_BR
dc.identifier.urihttp://hdl.handle.net/10183/151001pt_BR
dc.description.abstractAs 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.en
dc.description.abstractÀ 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.pt_BR
dc.format.mimetypeapplication/pdfpt_BR
dc.language.isoengpt_BR
dc.rightsOpen Accessen
dc.subjectHPCen
dc.subjectProcessamento paralelopt_BR
dc.subjectParallel programmingen
dc.subjectOpenMPen
dc.subjectOpenCLen
dc.subjectCUDAen
dc.subjectCPUen
dc.subjectGPUen
dc.subjectCholeskyen
dc.titleParallel implementations of the cholesky decomposition on CPUs and GPUspt_BR
dc.title.alternativeImplementação paralelas da decomposição de cholesky em CPU e GPU pt
dc.typeTrabalho de conclusão de graduaçãopt_BR
dc.contributor.advisor-coDiener, Matthiaspt_BR
dc.identifier.nrb001009773pt_BR
dc.degree.grantorUniversidade Federal do Rio Grande do Sulpt_BR
dc.degree.departmentInstituto de Informáticapt_BR
dc.degree.localPorto Alegre, BR-RSpt_BR
dc.degree.date2016pt_BR
dc.degree.graduationCiência da Computação: Ênfase em Ciência da Computação: Bachareladopt_BR
dc.degree.levelgraduaçãopt_BR


Thumbnail
   

Este item está licenciado na Creative Commons License

Mostrar registro simples