HpxTrace: monitorização de aplicações em HPX

Detalhes bibliográficos
Autor(a) principal: Pinto, José António Pereira
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/83669
Resumo: Dissertação de mestrado integrado em Engenharia Informática
id RCAP_84749bb4275d8f431eca1e0cea189f8a
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/83669
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 HpxTrace: monitorização de aplicações em HPXParallel computingDistributed computingTask oriented computingHPXAPEXApplication tracingComputação paralelaComputação distribuídaComputação orientado às tarefasRastreamento de aplicaçõesDissertação de mestrado integrado em Engenharia InformáticaAs the complexity of the parallelism in high performance computing continues to increase, traditional tools such as MPI and OpenMP are starting to become inadequate. Within this context, the HPX C++ library emerges as the first implementation of ParalleX, an execution model that describes message-driven and task-centric computing with the use of lightweight threading, futures, global address spaces and other mechanisms, in order to mitigate problems such as starvation, latency, management costs, and resource contention. In terms of monitoring HPX applications, this work includes the study of: i) HPX performance counters, a framework that provides real-time access to a number of performance metrics; and ii) APEX, a tool with an event API that enables runtime auto-tuning of application parameters and the generation of execution profiles, with the aim of finding areas of application. This resulted in an extensive report on the inner workings of these tools, which, due to its importance, was incorporated into the dissertation itself. During the development of this project, a new HPX counter was defined that monitors component variables and exemplifies how the framework of counters can be adapted to handle situations outside of its initial scope. This dissertation’s main contribution is HpxTrace, a tracing tool for HPX applications that was modeled after Dtrace and built with APEX’s policy engine. HpxTrace provides a system of probes that trigger upon the occurrence of certain events. The user can associate actions with each probe to collect and manipulate event data. Events include readings from HPX counters, execution of tasks, message exchanges, and events instrumented in the application by the users themselves. To describe the actions each probe should take, a scripting language was developed using the Spirit library from the Boost library collection. In addition to providing the basic operations and aggregations found in Dtrace, the language had to be adapted to the distributed nature of HPX. This was accomplished by taking measures such as separating variables into local and global contexts and adding synchronization mechanisms. To validate HpxTrace, two implementations of stencil algorithms that solve heat distribution problems were used as case studies. HpxTrace detected the differences in the optimizations between the two versions and their impact on performance. Following testing, it was concluded that HpxTrace can be used to analyse and measure the performance of HPX applications. Additionally, it proved to be particularly useful in comprehending the internal behavior of HPX, which is valuable for tasks like finding performance optimizations, as well as debugging and learning the platform itself.Com o aumento da complexidade do paralelismo na computação de alto desempenho, ferramentas tradicionais como o MPI e OpenMP começam a ser inadequadas. É neste contexto que surge o HPX, uma biblioteca C++ que é a primeira implementação do modelo de execução ParalleX. Este modelo descreve computação message-driven e task-centric com o uso de mecanismos como lightweight threading, futuros e espaços de endereçamento global de forma a mitigar problemas como inanição, latência, custos de gestão e contenção de recursos. Em termos de monitorização de aplicações em HPX, o trabalho incluiu o estudo: i) da framework de contadores de desempenho do HPX, que permite o acesso a diversas métricas de desempenho em tempo real; e ii) do APEX, uma ferramenta cuja API de eventos permite afinar em tempo de execução os parâmetros da aplicação e gerar perfis de execução, com a intenção de encontrar áreas de aplicação. Isto resultou num relatório extensivo sobre o funcionamento interno destas ferramentas, que pela sua importância foi incorporado na própria dissertação. Durante o desenvolvimento deste projeto, foi definido um novo contador HPX que monitoriza as variáveis de componentes e que exemplifica como a framework dos contadores pode ser adaptada para lidar com situações fora do seu âmbito inicial. A principal contribuição desta dissertação é o HpxTrace, uma ferramenta de rastreamento de aplicações em HPX, inspirada no Dtrace e construída com o sistema de políticas do APEX. O HpxTrace disponibiliza um sistema de sondas que disparam mediante a ocorrência de certos eventos. O utilizador pode associar ações a cada sonda para colecionar e manipular os dados dos eventos. Os eventos incluem leituras dos contadores do HPX, execução de tarefas, troca de mensagens e eventos instrumentados na aplicação pelos próprios utilizadores. Para descrever as ações que cada sonda deve tomar, foi desenvolvida uma linguagem de scripting com a biblioteca Spirit da coleção de bibliotecas Boost. Para além de disponibilizar as operações básicas e as agregações existentes no Dtrace, a linguagem teve que ser adaptada à natureza distribuída do HPX. Para isso foram tomadas medidas, tais como a separação de variáveis em contextos locais e globais e a adição de mecanismos de sincronização. Para validar o HpxTrace, foram usadas como caso de estudo duas implementações de algoritmos stencil que resolvem o problema de distribuição de calor. O HpxTrace detetou as diferenças nas otimizações entre as duas versões e o impacto destas no desempenho. Realizados os testes chegou-se à conclusão que o HpxTrace pode ser usado para a análise e medição do desempenho de aplicações em HPX. Adicionalmente, provou ser particularmente útil na compreensão do comportamento interno do HPX, o que é valioso não só para procurar otimizações de desempenho como também para tarefas como debugging e aprendizagem da própria plataforma.Pina, António Manuel SilvaUniversidade do MinhoPinto, José António Pereira2022-10-182022-10-18T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/83669por203246691info: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:37:40Zoai:repositorium.sdum.uminho.pt:1822/83669Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T19:33:59.301784Repositó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 HpxTrace: monitorização de aplicações em HPX
title HpxTrace: monitorização de aplicações em HPX
spellingShingle HpxTrace: monitorização de aplicações em HPX
Pinto, José António Pereira
Parallel computing
Distributed computing
Task oriented computing
HPX
APEX
Application tracing
Computação paralela
Computação distribuída
Computação orientado às tarefas
Rastreamento de aplicações
title_short HpxTrace: monitorização de aplicações em HPX
title_full HpxTrace: monitorização de aplicações em HPX
title_fullStr HpxTrace: monitorização de aplicações em HPX
title_full_unstemmed HpxTrace: monitorização de aplicações em HPX
title_sort HpxTrace: monitorização de aplicações em HPX
author Pinto, José António Pereira
author_facet Pinto, José António Pereira
author_role author
dc.contributor.none.fl_str_mv Pina, António Manuel Silva
Universidade do Minho
dc.contributor.author.fl_str_mv Pinto, José António Pereira
dc.subject.por.fl_str_mv Parallel computing
Distributed computing
Task oriented computing
HPX
APEX
Application tracing
Computação paralela
Computação distribuída
Computação orientado às tarefas
Rastreamento de aplicações
topic Parallel computing
Distributed computing
Task oriented computing
HPX
APEX
Application tracing
Computação paralela
Computação distribuída
Computação orientado às tarefas
Rastreamento de aplicações
description Dissertação de mestrado integrado em Engenharia Informática
publishDate 2022
dc.date.none.fl_str_mv 2022-10-18
2022-10-18T00: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/83669
url https://hdl.handle.net/1822/83669
dc.language.iso.fl_str_mv por
language por
dc.relation.none.fl_str_mv 203246691
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_ 1799132859610431488