Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX

Detalhes bibliográficos
Autor(a) principal: Barbosa, Pedro André Dias
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: https://hdl.handle.net/1822/83665
Resumo: Dissertação de mestrado integrado em Engenharia Informática
id RCAP_f7531b6928c3d90b0f14d7b938bd81b1
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/83665
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPXComputação paralelaComputação de alto desempenhoParalleXHPXHPXCLCUDAParallel computingHigh-performance computingEngenharia e Tecnologia::Outras Engenharias e TecnologiasDissertação de mestrado integrado em Engenharia InformáticaAtualmente, 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.Currently, 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.Pina, António Manuel SilvaPereira, André MartinsUniversidade do MinhoBarbosa, Pedro André Dias20222022-01-01T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/83665por203246683info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-07-21T12:27:54Zoai:repositorium.sdum.uminho.pt:1822/83665Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:22:36.506754Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
title Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
spellingShingle Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
Barbosa, Pedro André Dias
Computação paralela
Computação de alto desempenho
ParalleX
HPX
HPXCL
CUDA
Parallel computing
High-performance computing
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
title_short Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
title_full Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
title_fullStr Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
title_full_unstemmed Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
title_sort Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
author Barbosa, Pedro André Dias
author_facet Barbosa, Pedro André Dias
author_role author
dc.contributor.none.fl_str_mv Pina, António Manuel Silva
Pereira, André Martins
Universidade do Minho
dc.contributor.author.fl_str_mv Barbosa, Pedro André Dias
dc.subject.por.fl_str_mv Computação paralela
Computação de alto desempenho
ParalleX
HPX
HPXCL
CUDA
Parallel computing
High-performance computing
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
topic Computação paralela
Computação de alto desempenho
ParalleX
HPX
HPXCL
CUDA
Parallel computing
High-performance computing
Engenharia e Tecnologia::Outras Engenharias e Tecnologias
description Dissertação de mestrado integrado em Engenharia Informática
publishDate 2022
dc.date.none.fl_str_mv 2022
2022-01-01T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/1822/83665
url https://hdl.handle.net/1822/83665
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv 203246683
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 Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799132697159794688