Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/83665

Registo completo
Campo DCValorIdioma
dc.contributor.advisorPina, António Manuel Silvapor
dc.contributor.advisorPereira, André Martinspor
dc.contributor.authorBarbosa, Pedro André Diaspor
dc.date.accessioned2023-03-30T13:32:00Z-
dc.date.available2023-03-30T13:32:00Z-
dc.date.issued2022-
dc.date.submitted2022-
dc.identifier.urihttps://hdl.handle.net/1822/83665-
dc.descriptionDissertação de mestrado integrado em Engenharia Informáticapor
dc.description.abstractAtualmente, em ambientes de computação de alto desempenho, a utilização de aceleradores e co-processadores é cada vez mais relevante, representando uma grande percentagem do poder computacional do sistema. Neste contexto, a utilização de ferramentas tradicionais, tais como o OpenMP e MPI não é a mais adequada face ao modelo de programação daqueles dispositivos. O HPX é uma biblioteca open-source em C++ que surge como a primeira implementação do modelo de execução ParalleX, que se baseia num sistema de comunicação message-driven e num modelo de execução por tarefas. Esta biblioteca visa superar os principais problemas enfrentados em computação de alto desempenho tais como a latência, dificuldade de integração de aceleradores, inanição, entre outros. O HPXCL é uma extensão da biblioteca HPX, orientada à integração de aceleradores em sistemas que combinem CPUs e GPUs. O modelo assynchronous many tasks do HPX é estendido com a transferência de dados entre o host e o GPU (e vice versa) e a execução assíncrona de kernels, que pretende contornar os problemas dos modelos atuais. O HPXCL permite ainda ao utilizador a manipulação dos aceleradores do sistema, neste caso GPUs, através de objetos. Estes objetos permitem a criação de programas, que fazem o lançamento do kernel, e a criação de buffers utilizados para efetuar a comunicação de dados entre o host e o GPU. A avaliação dos resultados obtidos recorrendo ao HPXCL foi realizada através da comparação do desempenho do mesmo com versões de controlo, neste caso uma versão em CUDA puro, e uma versão CUDA com utilização da biblioteca NVRTC. Esta última versão, à semelhança do HPXCL, executa a compilação do kernel durante a execução do programa, permitindo obter uma melhor comparação do que com a versão CUDA. Para além disso também foi feita uma análise do comportamento do algoritmo, para diferentes cargas computacionais para verificar a sua viabilidade dependendo das operações que terá de efetuar. Finalmente foi feito o profiling de todas as versões, recorrendo às ferramentas NVPROF e NSIGHT da NVIDIA, e ao APEX, para permitir justificar o comportamento do algoritmo e as diferenças de desempenho que pudessem ser eventualmente observadas. O código desenvolvido ao longo da dissertação pode ser consultado no repositório https://github.com/PADBarbosa/Tese.por
dc.description.abstractCurrently, in the context of High-Performance Computing, the usage of accelerators and coprocessors is increasingly fundamental, representing a big percentage of the computational power of a system. In this context, the usage of the traditional tools such as OpenMP and MPI, isn’t the most adequate (in view of the programming model of those devices.) HPX is an open-source C++ library that appears as the first implementation of the ParalleX execution model, which is based in a message-driven communication system and an execution model by tasks. This library aims to overcome the main problems faced by in High-Performance Computing such as latency, difficulty in integrating accelerators, starvation, among others. HPXCL is an exension of the HPX library, oriented to the integration of accelerators in systems that combine both CPUs and GPUs. The HPX assynchronous many tasks model is extended with the transfer of data between the host and the GPU (and vice versa) and the asynchronous execution of kernels, which intends to work around the problems of the current models. HPXCL also allows the user to manipulate system accelerators, in this case GPUs, through objects. These objects allow the creation of programs, that launch the kernel execution, and the creation of buffers which are used for the communication of data between host and GPU. The evaluation of the results obtained using HPXCL was performed by comparing its performance with the control versions, in this case a version using pure CUDA, and a CUDA version using the NVRTC library. This last version, similarly to HPXCL, executes the kernel compilarion during runtime, allowing for a better comparison than with the pure CUDA version. Furthermore, an analysis of the behaviour of the NBody simulation algorithm was also carried out, for different computational loads to verify its viability depending on the operations that will have to be carried out. Finally, all versions were profiled, using NVIDIA’s NVPROF and NSIGHT tools, and APEX, in order to justify the algorithm’s behavior and the performance differences that could eventually be observed. The code developed throughout this dissertation can be consulted in the repository https://github.com/PADBarbosa/Tese.por
dc.language.isoporpor
dc.rightsopenAccesspor
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/por
dc.subjectComputação paralelapor
dc.subjectComputação de alto desempenhopor
dc.subjectParalleXpor
dc.subjectHPXpor
dc.subjectHPXCLpor
dc.subjectCUDApor
dc.subjectParallel computingpor
dc.subjectHigh-performance computingpor
dc.titleIntegração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPXpor
dc.typemasterThesiseng
dc.identifier.tid203246683por
thesis.degree.grantorUniversidade do Minhopor
sdum.degree.grade16 valorespor
sdum.uoeiEscola de Engenhariapor
dc.subject.fosEngenharia e Tecnologia::Outras Engenharias e Tecnologiaspor
Aparece nas coleções:BUM - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Pedro-André-Dias-Barbosa-dissertação-final.pdf3,66 MBAdobe PDFVer/Abrir

Este trabalho está licenciado sob uma Licença Creative Commons Creative Commons

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID