ESTUDO SOBRE O IMPACTO DE TÉCNICAS DE BOOSTING EM APLICAÇÕES MULTITHREADING (Anais do Salão Inovação, Ensino, Pesquisa e Extensão, 2020)
Técnicas de boosting visam aumentar o desempenho dos núcleos do processador através do aumento da frequência de operação enquanto há possibilidade para aumentar a potência dentro do Thermal Design Power (TDP) do processador. Entretanto, poucos trabalhos têm avaliado seu impacto sobre aplicações paralelas. Portanto, este trabalho objetiva avaliar a técnica de boosting implementada pela AMD (Turbo Core) em aplicações sequenciais e paralelas considerando diferentes requisitos não funcionais, como por exemplo, o desempenho, consumo de energia e do custo-benefício entre estes dois através do energy-delay product (EDP). Os experimentos foram realizados no processador AMD Ryzen 7 1700 de 8 núcleos (16 threads através de Simultaneous Multi-Threading (SMT)) com o Sistema Operacional Linux Ubuntu, kernel v. 4.4.0. Além disso, a frequência mais alta sem utilizar-se do modo Turbo Core é de 3.0Ghz. Por outro lado, quando o modo Turbo Core está ativo, o chip pode operar em frequências de até 3.7Ghz com dois núcleos. Três kernels da suíte do NAS Parallel Benchmarks foram escolhidos: lower-upper gauss-seidel solver (LU), multi-grid on a sequence of meshes (MG), e unstructured adaptive mesh (UA). Eles foram executados com o conjunto de entradas da classe C e compilados com o GCC v8.1.0 usando a flag de otimização -O3. Cada aplicação foi executada com diferentes números de threads: 1 até 16, que representa o total de threads que o processador pode executar. Os testes foram executados com o Dynamic Voltage and Frequency Scaling (DVFS) governor em ondemand. Os resultados são a média de dez execuções com um desvio padrão inferior que 0.5%. Considerando o desempenho das aplicações paralelas, a execução sequencial (apenas uma thread) com o Turbo Core ativo possibilitou melhores resultados. Os resultados mostram que, no melhor caso, obtido com o kernel UA, a aplicação executou 13% mais rápida. No entanto, conforme o número de threads aumenta, a melhoria no desempenho obtida pela ativação do Turbo Core é reduzida até a obtenção de resultados similares à execução com o Turbo Core desativado. Por outro lado, para todos os casos, a execução com o Turbo Core ativo consumiu mais energia. Este comportamento ocorre porque a frequência e tensão de operação possuem impacto quadrático na energia do processador, e, portanto, qualquer aumento nelas resultará num maior consumo de energia. Conclui-se que, a partir da execução de um conjunto de benchmarks paralelos, o AMD Turbo Core otimiza o desempenho em execuções de até quatro threads, e partir deste ponto, os resultados se tornam similares à execução com o Turbo Core desativado. Por outro lado, quando as aplicações paralelas são executadas com o Turbo Core ativo, existe um elevado consumo de energia devido ao aumento da voltagem e frequência de operação do processador.