Integração de aceleradores locais - remotos em aplicações paralelas e distribuídas com HPX
Autor(a) principal: | |
---|---|
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 |