Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms
| Ano de defesa: | 2019 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | eng |
| Instituição de defesa: |
Não Informado pela instituição
|
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Palavras-chave em Inglês: | |
| Link de acesso: | http://hdl.handle.net/10183/198540 |
Resumo: | A programação de aplicações paralelas para plataformas heterogêneas de Computação de alto desempenho é mais fácil ao usar o paradigma baseado em tarefas, em que um Grafo Acíclico Dirigido (DAG) de tarefas descreve o comportamento da aplicação. A simplicidade existe porque um runtime, como o StarPU, fica responsável por diversas atividades normalmente executadas pelo desenvolvedor da aplicação, como escalonamento de tarefas, balanceamento de carga e gerenciamento de memória. Este gerenciamento de memória refere-se as operações de dados, como por exemplo, copiar os dados necessários para o local onde uma determinada tarefa está escalonada para execução. Decisões ruins de escalonamento ou a falta de informações apropriadas podem levar a um gerenciamento de memória inadequado pelo runtime. Descobrir se uma aplicação esta apresentando problemas de desempenho por erros de memória é complexo. Os programadores de aplicações e runtimes baseadas em tarefas se beneficiariam de metodologias especializadas de análise de desempenho que verificam possíveis problemas no gerenciamento de memória. Desta maneira, este trabalho apresenta métodos para investigar o gerenciamento da memória entre CPU-GPU-disco de recursos heterogêneos do runtime StarPU, um popular middleware baseado em tarefas para aplicações HPC. A base desses métodos é o rastreamento de execução coletado pelo StarPU. Esses rastros fornecem informações sobre as decisões do escalonamento e do desempenho do sistema que precisam ser analisados e convertidos em métricas ou visualizações úteis. O uso de uma metodologia específica para aplicações baseadas em tarefas pode levar a um melhor entendimento do comportamento da memória e para possíveis otimizações de desempenho. As estratégias propostas foram aplicadas em três diferentes problemas, um solucionador da fatoração de Cholesky denso, uma simulação CFD, e uma fatoração QR esparsa. No caso do Cholesky denso, as estratégias encontraram um problema no StarPU que a correção levou a ganhos de 66% de desempenho. No caso da simulação CFD, as estratégias guiaram a inserção de informação extra no DAG levando a ganhos de 38%. Estes resultados mostram a efetividade dos métodos propostos na identificação de problemas que levam a otimizações. |
| id |
URGS_a7234f5698be74af50cd0c51f468abde |
|---|---|
| oai_identifier_str |
oai:www.lume.ufrgs.br:10183/198540 |
| network_acronym_str |
URGS |
| network_name_str |
Biblioteca Digital de Teses e Dissertações da UFRGS |
| repository_id_str |
|
| spelling |
Nesi, Lucas LeandroSchnorr, Lucas Mello2019-08-29T02:34:49Z2019http://hdl.handle.net/10183/198540001100121A programação de aplicações paralelas para plataformas heterogêneas de Computação de alto desempenho é mais fácil ao usar o paradigma baseado em tarefas, em que um Grafo Acíclico Dirigido (DAG) de tarefas descreve o comportamento da aplicação. A simplicidade existe porque um runtime, como o StarPU, fica responsável por diversas atividades normalmente executadas pelo desenvolvedor da aplicação, como escalonamento de tarefas, balanceamento de carga e gerenciamento de memória. Este gerenciamento de memória refere-se as operações de dados, como por exemplo, copiar os dados necessários para o local onde uma determinada tarefa está escalonada para execução. Decisões ruins de escalonamento ou a falta de informações apropriadas podem levar a um gerenciamento de memória inadequado pelo runtime. Descobrir se uma aplicação esta apresentando problemas de desempenho por erros de memória é complexo. Os programadores de aplicações e runtimes baseadas em tarefas se beneficiariam de metodologias especializadas de análise de desempenho que verificam possíveis problemas no gerenciamento de memória. Desta maneira, este trabalho apresenta métodos para investigar o gerenciamento da memória entre CPU-GPU-disco de recursos heterogêneos do runtime StarPU, um popular middleware baseado em tarefas para aplicações HPC. A base desses métodos é o rastreamento de execução coletado pelo StarPU. Esses rastros fornecem informações sobre as decisões do escalonamento e do desempenho do sistema que precisam ser analisados e convertidos em métricas ou visualizações úteis. O uso de uma metodologia específica para aplicações baseadas em tarefas pode levar a um melhor entendimento do comportamento da memória e para possíveis otimizações de desempenho. As estratégias propostas foram aplicadas em três diferentes problemas, um solucionador da fatoração de Cholesky denso, uma simulação CFD, e uma fatoração QR esparsa. No caso do Cholesky denso, as estratégias encontraram um problema no StarPU que a correção levou a ganhos de 66% de desempenho. No caso da simulação CFD, as estratégias guiaram a inserção de informação extra no DAG levando a ganhos de 38%. Estes resultados mostram a efetividade dos métodos propostos na identificação de problemas que levam a otimizações.Programming parallel applications for heterogeneous High Performance Computing platforms is easier when using the task-based programming paradigm, where a Direct Acyclic Graph (DAG) of tasks models the application behavior. The simplicity exists because a runtime, like StarPU, takes care of many activities usually carried out by the application developer, such as task scheduling, load balancing, and memory management. This memory management refers to the runtime responsibility for handling memory operations, like copying the necessary data to the location where a given task is scheduled to execute. Poor scheduling or lack of appropriate information may lead to inadequate memory management by the runtime. Discover if an application presents memory-related performance problems is complex. The task-based applications’ and runtimes’ programmers would benefit from specialized performance analysis methodologies that check for possible memory management problems. In this way, this work proposes methods and tools to investigate heterogeneous CPU-GPU-Disk memory management of the StarPU runtime, a popular task-based middleware for HPC applications. The base of these methods is the execution traces that are collected by the runtime. These traces provide information about the runtime decisions and the system performance; however, a simple application can have huge amounts of trace data stored that need to be analyzed and converted to useful metrics or visualizations. The use of a methodology specific to task-based applications could lead to a better understanding of memory behavior and possible performance optimizations. The proposed strategies are applied on three different problems, a dense Cholesky solver, a CFD simulation, and a sparse QR factorization. On the dense Cholesky solver, the strategies found a problem on StarPU that a correction leads to 66% performance improvement. On the CFD simulation, the strategies guided the insertion of extra information on the DAG and data, leading to performance gains of 38%. These results indicate the effectiveness of the proposed analysis methodology in problems identification that leads to relevant optimizations.application/pdfengMemoria : ComputadoresAnálise de desempenhoPerformance analysisTask-Based programmingMemory performance analysis strategies at runtime level for task-based applications over heterogeneous platformsEstratégias para análise do desempenho de memória em nível de runtime para aplicações baseadas em tarefas sobre plataformas heterogêneas info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2019mestradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSTEXT001100121.pdf.txt001100121.pdf.txtExtracted Texttext/plain210409http://www.lume.ufrgs.br/bitstream/10183/198540/2/001100121.pdf.txtc94757258eda7dc39dcf116a34191381MD52ORIGINAL001100121.pdfTexto completoapplication/pdf7151514http://www.lume.ufrgs.br/bitstream/10183/198540/1/001100121.pdf127a8af6c396503e7cf5e7cc4c8c14c4MD5110183/1985402019-08-30 02:34:52.997336oai:www.lume.ufrgs.br:10183/198540Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532019-08-30T05:34:52Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false |
| dc.title.pt_BR.fl_str_mv |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms |
| dc.title.alternative.en.fl_str_mv |
Estratégias para análise do desempenho de memória em nível de runtime para aplicações baseadas em tarefas sobre plataformas heterogêneas |
| title |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms |
| spellingShingle |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms Nesi, Lucas Leandro Memoria : Computadores Análise de desempenho Performance analysis Task-Based programming |
| title_short |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms |
| title_full |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms |
| title_fullStr |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms |
| title_full_unstemmed |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms |
| title_sort |
Memory performance analysis strategies at runtime level for task-based applications over heterogeneous platforms |
| author |
Nesi, Lucas Leandro |
| author_facet |
Nesi, Lucas Leandro |
| author_role |
author |
| dc.contributor.author.fl_str_mv |
Nesi, Lucas Leandro |
| dc.contributor.advisor1.fl_str_mv |
Schnorr, Lucas Mello |
| contributor_str_mv |
Schnorr, Lucas Mello |
| dc.subject.por.fl_str_mv |
Memoria : Computadores Análise de desempenho |
| topic |
Memoria : Computadores Análise de desempenho Performance analysis Task-Based programming |
| dc.subject.eng.fl_str_mv |
Performance analysis Task-Based programming |
| description |
A programação de aplicações paralelas para plataformas heterogêneas de Computação de alto desempenho é mais fácil ao usar o paradigma baseado em tarefas, em que um Grafo Acíclico Dirigido (DAG) de tarefas descreve o comportamento da aplicação. A simplicidade existe porque um runtime, como o StarPU, fica responsável por diversas atividades normalmente executadas pelo desenvolvedor da aplicação, como escalonamento de tarefas, balanceamento de carga e gerenciamento de memória. Este gerenciamento de memória refere-se as operações de dados, como por exemplo, copiar os dados necessários para o local onde uma determinada tarefa está escalonada para execução. Decisões ruins de escalonamento ou a falta de informações apropriadas podem levar a um gerenciamento de memória inadequado pelo runtime. Descobrir se uma aplicação esta apresentando problemas de desempenho por erros de memória é complexo. Os programadores de aplicações e runtimes baseadas em tarefas se beneficiariam de metodologias especializadas de análise de desempenho que verificam possíveis problemas no gerenciamento de memória. Desta maneira, este trabalho apresenta métodos para investigar o gerenciamento da memória entre CPU-GPU-disco de recursos heterogêneos do runtime StarPU, um popular middleware baseado em tarefas para aplicações HPC. A base desses métodos é o rastreamento de execução coletado pelo StarPU. Esses rastros fornecem informações sobre as decisões do escalonamento e do desempenho do sistema que precisam ser analisados e convertidos em métricas ou visualizações úteis. O uso de uma metodologia específica para aplicações baseadas em tarefas pode levar a um melhor entendimento do comportamento da memória e para possíveis otimizações de desempenho. As estratégias propostas foram aplicadas em três diferentes problemas, um solucionador da fatoração de Cholesky denso, uma simulação CFD, e uma fatoração QR esparsa. No caso do Cholesky denso, as estratégias encontraram um problema no StarPU que a correção levou a ganhos de 66% de desempenho. No caso da simulação CFD, as estratégias guiaram a inserção de informação extra no DAG levando a ganhos de 38%. Estes resultados mostram a efetividade dos métodos propostos na identificação de problemas que levam a otimizações. |
| publishDate |
2019 |
| dc.date.accessioned.fl_str_mv |
2019-08-29T02:34:49Z |
| dc.date.issued.fl_str_mv |
2019 |
| 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 |
http://hdl.handle.net/10183/198540 |
| dc.identifier.nrb.pt_BR.fl_str_mv |
001100121 |
| url |
http://hdl.handle.net/10183/198540 |
| identifier_str_mv |
001100121 |
| dc.language.iso.fl_str_mv |
eng |
| language |
eng |
| 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:Biblioteca Digital de Teses e Dissertações da UFRGS instname:Universidade Federal do Rio Grande do Sul (UFRGS) instacron:UFRGS |
| instname_str |
Universidade Federal do Rio Grande do Sul (UFRGS) |
| instacron_str |
UFRGS |
| institution |
UFRGS |
| reponame_str |
Biblioteca Digital de Teses e Dissertações da UFRGS |
| collection |
Biblioteca Digital de Teses e Dissertações da UFRGS |
| bitstream.url.fl_str_mv |
http://www.lume.ufrgs.br/bitstream/10183/198540/2/001100121.pdf.txt http://www.lume.ufrgs.br/bitstream/10183/198540/1/001100121.pdf |
| bitstream.checksum.fl_str_mv |
c94757258eda7dc39dcf116a34191381 127a8af6c396503e7cf5e7cc4c8c14c4 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
| repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS) |
| repository.mail.fl_str_mv |
lume@ufrgs.br||lume@ufrgs.br |
| _version_ |
1831316077147062272 |