Use este identificador para citar ou linkar para este item:
https://repositorio.unipampa.edu.br/jspui/handle/riu/5612
Tipo: | Trabalho de Conclusão de Curso |
Título: | Transparent optimization of OpenMP applications via thread throttling and boosting techniques |
Autor(es): | Marques, Sandro Matheus Vila Nova |
Primeiro Orientador: | Lorenzon, Arthur Francisco |
Resumo: | O número crescente de núcleos em arquiteturas multicore modernas trouxe consigo a necessidade de melhor uso dos recursos de hardware. Consequentemente, duas técnicas têm se tornado amplamente utilizadas para otimizar o desempenho e o consumo de energia desses ambientes: o Dynamic Concurrency Throttling (DCT) e Boosting. Por um lado, o DCT ajusta o número de threads em regiões paralelas para minimizar os efeitos das características intrínsecas das aplicações que afetam o desempenho e o consumo de energia (e.g., comunicação e sincronização de dados). Por outro lado, as técnicas de Boosting focam em fazer o desempenho atingir seu nível máximo durante todas as fases da aplicação, por meio do aumento das frequências do processador, respeitando o Thermal Design Power (TDP). Um dos principais desafios é que cada região de uma aplicação paralela pode se comportar de forma diferente (e.g., comportamento de acesso à memória e grau de paralelismo), o que torna o uso de ambas as técnicas combinadas tarefa complicada. Escolher o número errado de threads e habilitar/desabilitar as frequências de boost nas fases erradas pode levar ao aumento do consumo de energia e degradação do desempenho. Para resolver este problema, este trabalho apresenta duas estratégias que aplicam DCT e Boosting para melhorar o trade-off entre desempenho e consumo de energia (representado pelo energy-delay product - EDP): PFG, uma estratégia que otimiza cada região de um determinada aplicação, individualmente; e PCG que considera a combinação de regiões paralelas e sequenciais durante a otimização. Ambas as estratégias são transparentes, automáticas e profundamente integradas à interface de programação paralela OpenMP, portanto, nenhuma modificação ou recompilação de código é necessária. Por meio da execução de doze benchmarks amplamente conhecidos em três sistemas multicore, PFG e PCG melhoram EDP em até, respectivamente, 95,3% e 95,5% em comparação com a execução OpenMP padrão, 90,9 % e 94,8 % em Varuna-PM e 80,5% e 83,7% contra a técnica Core Packing. Também mostramos que o PFG é mais adequado para aplicações com alta variabilidade na carga de trabalho da CPU, enquanto o PCG é melhor quando há baixa variabilidade da carga de trabalho. |
Abstract: | The growing number of cores in modern multicore architectures has brought together the need for better use of hardware resources. Consequently, two techniques have become widely used to optimize the performance and energy consumption of these environments: Dynamic Concurrency Throttling (DCT) and Boosting. On the one hand, DCT adjusts the number of threads in parallel regions to minimize the effects of intrinsic characteristics of the applications that impact performance and energy consumption (e.g., data synchronization and communication). On the other hand, Boosting techniques focus on making the performance reach its maximum level during all phases of the application by increasing the processor frequencies while respecting the Thermal Design Power (TDP). One of the main challenges is that each region of a parallel application can behave differently (i.e., memory access behavior and degree of parallelism) which makes using both techniques combined not a straightforward task. Choosing the wrong number of threads and enabling/disabling boosting frequencies in the incorrect phases can lead to increasing the energy consumption and performance degradation. To solve this problem, this work presents two strategies that apply DCT and Boosting to improve the trade-off between performance and energy consumption (represented by the energy-delay product - EDP): PFG, a strategy that optimizes each region of a given application, individually; and PCG that considers the combination of parallel and sequential regions during optimization. Both strategies are transparent, automatic, and deeply integrated into the OpenMP parallel programming interface, so no code modification or recompilation is necessary. By executing twelve well-known benchmarks in three multicore systems, PFG and PCG improve EDP by up to, respectively, 95.3% and 95.5% compared to standard OpenMP execution, 90.9%, and 94.8% on Varuna-PM and 80.5% and 83.7% against the Core Packing technique. We also show that PFG is more suitable for applications with high variability in the CPU workload, while PCG is better when there is low workload variability. |
Palavras-chave: | Engenharia de software Computação de alto desempenho Programação paralela (Computação) Software engineering High performance computing Parallel programming (Computer science) |
CNPq: | CNPQ::CIENCIAS EXATAS E DA TERRA |
Idioma: | eng |
País: | Brasil |
Editor: | Universidade Federal do Pampa |
Sigla da Instituição: | UNIPAMPA |
Campus: | Campus Alegrete |
Citação: | MARQUES, Sandro Matheus Vila Nova. Transparent optimization of OpenMP applications via thread throttling and boosting techniques. Orientador: Arthur Francisco Lorenzon. 2021. 64p. Trabalho de Conclusão de Curso (Bacharel em Engenharia de software) - Universidade Federal do Pampa, Curso de Engenharia de software, Alegrete, 2021. |
Tipo de Acesso: | Acesso Aberto |
URI: | http://dspace.unipampa.edu.br:8080/jspui/handle/riu/5612 |
Data do documento: | 7-Mai-2021 |
Aparece nas coleções: | Engenharia de Software |
Arquivos associados a este item:
Arquivo | Descrição | Tamanho | Formato | |
---|---|---|---|---|
Sandro Matheus Vila Nova Marques-2021.pdf | 730.29 kB | Adobe PDF | Visualizar/Abrir |
Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.