Performance-energy trade-offs prediction and runtime selection for parallel applications on heterogeneous multiprocessing systems - Coutinho, Demétrios Araújo Magalhães (2021)
Na era multicores, o tamanho do espaço de operação do software, ou seja, configurações de hardware que fornecem diferentes desempenho e consumo energético de um software, é significativamente maior. Além disso, torna-se ainda mais complexo escolher uma configuração que otimize o desempenho e o consumo de energia de processadores heterogêneos. Arquiteturas heterogêneas de vários núcleos oferecem flexibilidade em diferentes tipos de núcleos e de tensão e frequência, definindo um vasto espaço de design a ser explorado. Além do mais, soluções de eficiência energética é crucial em dispositivos menores, pois pode levar a uma vida útil mais longa da bateria e uma melhor experiência do usuário, incluindo aplicativos mais complexos. Esta tese propõe uma metodologia para encontrar balanços entre performance e energia para aplicações paralelas com cargas de trabalho balanceadas dinamicamente, rodando em sistemas multiprocessado heterogêneo com uma arquitetura de conjunto de instruções único (ISA). Nosso método concebe novos modelos analíticos para desempenho e consumo de energia cujos parâmetros podem ser ajustados usando apenas algumas medições off-line estrategicamente amostradas. Esses modelos são então usados para estimar o desempenho de um aplicativo e o consumo de energia para todo o espaço de configuração. Por sua vez, essas predições realizadas off-line definem a escolha das configurações de Pareto-ótimas estimadas do modelo, que são usadas para informar a configuração que o aplicativo deve executar. A metodologia foi validada em uma placa ODROID-XU3 para oito programas dos aplicativos PARSEC Benchmark, Phoronix Test Suite e Rodinia. Foram observadas economias de energia de até 59,77%, 61,38% e 17,7% em comparação com os governadores do Linux performance, ondemand e powersave, respectivamente, com desempenho superior ou semelhante. Este método visa fornecer um ponto de partida ideal para um gerenciador de energia para tomar melhores decisões de acordo com o desempenho do aplicativo e requisitos de consumo de energia e sistema em execução. Dessa forma, esta tese também propõe uma estratégia usando a configuração Pareto-ótima selecionada por nossos modelos como um ponto de partida apropriado para um runtime support framework, chamado Nornir. Esse framework realiza dinamicamente uma busca local por uma configuração mais desejável de núcleos e frequência adaptando às flutuações da carga de trabalho e interferência externa. Além disso, estendemos nosso modelo de energia para prever o consumo de todo o dispositivo, ou seja, a soma do consumo de todos os componentes internos. Esta abordagem híbrida foi empregada em uma placa ODROID-XU3 em dois aplicativos multi-thread. Nornir começando com a configuração de Pareto pode alcançar até 50% de economia de energia em comparação com configurações de partida aleatórias. Também observamos que o governador Linux performance e interactive consumiu até 1,62X mais energia do que Nornir usando Pareto.