HpxTrace: monitorização de aplicações em 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/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 |