12
Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira 1 , Gabriel B. Moro 2 , Eduardo H. M. da Cruz 2 Philippe O. A. Navaux 2 , Lucas Mello Schnorr 2 , and Sergio Bampi 1,2 1 Programa de Pós-Graduação em Microeletrônica (PGMicro) 2 Programa de Pós-Graduação em Computação (PPGC) Universidade Federal do Rio Grande do Sul (UFRGS) – Porto Alegre – RS – Brasil {dssilveira, gbmoro, ehmcruz, navaux, schnorr, bampi}@inf.ufrgs.br Abstract. This paper presents a detailed energy consumption analysis, considering the energy consumption related to CPU, cache memory and main memory of parallel applications on HPC systems. Furthermore, this paper also presents the correlation between energy consumption, Speedup, and execution time. Experiments are conducted with the NAS parallel benchmarks using three different measurement tools: 1) Intel PCM, 2) Perf Linux, and 3) HP CACTI. The results show a comparison between two approaches to obtain energy consumption results. One using PCM and other using Perf and CACTI. The DRAM results show an average variation between these approaches of 47% for sequential applications, and 19% for parallel applications. The system results show that the lowest energy consumption occurs only when all physical cores are used, showing that the hyper-threading system did not bring benefits in energy consumption to the system. Moreover, the cache memories results show that the cache miss rate (regardless of the level) increases with the number of threads. However, a parallel application has lower cache memory energy consumption when compared to its sequential version. Resumo. Este trabalho apresenta uma análise detalhada do consumo de energia considerando a energia da CPU, das memórias caches e da memória principal de aplicações paralelas em um sistema HPC. Além disso, este trabalho apresenta a relação entre consumo de energia, Speedup e tempo de execução. Os experimentos foram conduzidos com os benchmarks do NAS usando três diferentes tipos de ferramentas: 1) Intel PCM, 2) Perf Linux, e 3) HP CACTI. Os resultados apresentam um comparativo entre dois modelos para obter resultados de consumo de energia: um usando o PCM e outro usando Perf e CACTI. Os resultados de DRAM apresentam uma variação entre esses métodos de 47% para aplicações sequenciais e 19% para aplicações paralelas. Os resultados do sistema mostram que o menor consumo de energia ocorre somente quando todos os núcleos físicos são utilizados, demontrando que o mecanismo de hyper-threading não traz benefícios em consumo de energia para esse sistema utilizando essas aplicações. Além disso, os resultados de memória cache mostram que a taxa de cache miss, independente do nível, aumenta com a quantidade de threads. Entretanto, uma aplicação paralela tem um menor consumo de energia da cache quando comparada a sua versão sequencial.

Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

Energy Consumption Estimation in Parallel Applications: anAnalysis in Real and Theoretical Models

Dieison S. Silveira1, Gabriel B. Moro2, Eduardo H. M. da Cruz2Philippe O. A. Navaux2, Lucas Mello Schnorr2, and Sergio Bampi1,2

1Programa de Pós-Graduação em Microeletrônica (PGMicro)2 Programa de Pós-Graduação em Computação (PPGC)

Universidade Federal do Rio Grande do Sul (UFRGS) – Porto Alegre – RS – Brasil

{dssilveira, gbmoro, ehmcruz, navaux, schnorr, bampi}@inf.ufrgs.br

Abstract. This paper presents a detailed energy consumption analysis,considering the energy consumption related to CPU, cache memory and mainmemory of parallel applications on HPC systems. Furthermore, this paper alsopresents the correlation between energy consumption, Speedup, and executiontime. Experiments are conducted with the NAS parallel benchmarks using threedifferent measurement tools: 1) Intel PCM, 2) Perf Linux, and 3) HP CACTI.The results show a comparison between two approaches to obtain energyconsumption results. One using PCM and other using Perf and CACTI. TheDRAM results show an average variation between these approaches of 47% forsequential applications, and 19% for parallel applications. The system resultsshow that the lowest energy consumption occurs only when all physical cores areused, showing that the hyper-threading system did not bring benefits in energyconsumption to the system. Moreover, the cache memories results show that thecache miss rate (regardless of the level) increases with the number of threads.However, a parallel application has lower cache memory energy consumptionwhen compared to its sequential version.

Resumo. Este trabalho apresenta uma análise detalhada do consumo deenergia considerando a energia da CPU, das memórias caches e da memóriaprincipal de aplicações paralelas em um sistema HPC. Além disso, este trabalhoapresenta a relação entre consumo de energia, Speedup e tempo de execução.Os experimentos foram conduzidos com os benchmarks do NAS usando trêsdiferentes tipos de ferramentas: 1) Intel PCM, 2) Perf Linux, e 3) HP CACTI.Os resultados apresentam um comparativo entre dois modelos para obterresultados de consumo de energia: um usando o PCM e outro usando Perf eCACTI. Os resultados de DRAM apresentam uma variação entre esses métodosde 47% para aplicações sequenciais e 19% para aplicações paralelas. Osresultados do sistema mostram que o menor consumo de energia ocorre somentequando todos os núcleos físicos são utilizados, demontrando que o mecanismode hyper-threading não traz benefícios em consumo de energia para essesistema utilizando essas aplicações. Além disso, os resultados de memóriacache mostram que a taxa de cache miss, independente do nível, aumenta coma quantidade de threads. Entretanto, uma aplicação paralela tem um menorconsumo de energia da cache quando comparada a sua versão sequencial.

Page 2: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

1. Introdução

Potência e energia são conceitos fundamentais no projeto de sistemas HPC(High-Performance Computing ) [1] [2]. A eficiência energética de sistemas HPC éum problema crítico, o qual exige, muitas vezes, o conhecimento do comportamentodas aplicações e da plataforma na qual elas estão sendo executadas. A medição doconsumo de energia de sistemas reais em uma granularidade mais fina se torna umatécnica fundamental nesse cenário [3]. Vários fatores influenciam no consumo de energiaem HPC, incluindo, por exemplo, características da especificação elétrica de componentesutilizados pelo sistema, aspectos da aplicação e do sistema de software [3].

As interfaces de programação paralela de memória compartilhada permitem acomunicação e a sincronização das threads (por exemplo OpenMP), o que representa umaparte importante no consumo total de energia do sistema [4]. Além disso, o desempenhode uma aplicação, após paralelizada, deve aumentar, promovendo a redução no consumode energia do sistema como um todo, visto que a carga de trabalho realizada pela aplicaçãoserá melhor distribuída entre os recursos de processamento, fazendo com que a aplicaçãoexecute mais rápido e, logo, consuma menos energia [4].

O consumo de energia e o desempenho de aplicações são característicasconflitantes e complexas [3]. O aumento da eficiência energética sem o impacto negativono desempenho é um desafio [3]. Dentre os trabalhos investigados, grande parte sãovoltadas ao desempenho e escalabilidade de aplicações HPC. Diferentemente disso, essetrabalho possui como motivação o desempenho de aplicações paralelas em uma análisemais detalhada do consumo de energia na hierarquia de memória.

Esse trabalho tem por objetivo apresentar uma técnica que permite o conhecimentode como a energia é consumida pela hierarquia de memória. A técnica é baseada emmodelos matemáticos, que são alimentados por dados obtidos de contadores de hardwarede uma arquitetura alvo. O NAS Parallel Benchmarks (NPB) [6] foi utilizado paraos experimentos, como também três ferramentas de profiling são utilizadas para obtermedidas, dentre elas: Intel PCM [7], Perf Linux [8], and HP CACTI [9]. A ferramentaIntel PCM fornece o consumo de energia total da memória principal e da CPU. Já o Perfprofiler coleta estatísticas da CPU, monitorando os contadores de hardware. Quanto aoCACTI, essa ferramenta permite estimar o consumo de energia por acesso à memória.

2. Trabalhos Relacionados

A maior parte dos trabalhos investigados conduzem suas pesquisas utilizando métricas deSpeedup e escalabilidade de aplicações de HPC. O modelo de Speedup de tempo fixo [10]e o modelo de Speedup memory-bounded [11] estendem o Speedup de duas maneiras.Portanto, essas métricas focam no desempenho e não levam em consideração o consumode energia e os efeitos do desempenho no consumo de potência [12].

Poucos trabalhos investigam o impacto do consumo de energia em aplicaçõesmultiprocessadas de memória compartilhada. Os autores em [13] apresentam o impactode modelos de programação paralela e de frequência de CPU no consumo de energiade sistemas HPC. Nesse estudo, os autores avaliam o consumo de energia de umsistema paralelo que utiliza OpenMP com MPI, utilizando o benchmark do NAS para osexperimentos. Esse trabalho mostra a influência dos diferentes modelos de programação

Page 3: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

paralela na eficiência energética e desempenho de execução. Em [4], os autoresanalisam o desempenho, consumo de energia e a métrica Energy Delay Product emtrês processadores embarcados, utilizando quatro interfaces de programação paralela(Pthreads, OpenMP, MPI-1 e MPI-2). Os experimentos desse trabalho mostram queOpenMP é mais eficiente do ponto de vista energético do que outras interfaces deprogramação paralelas para processadores embarcados.

Os autores em [14] avaliam aplicações OpenMP em sistemas HPC, examinandodois compiladores com uma variedade de níveis de otimizações e algoritmos. Osexperimentos em [14] foram conduzidos em um nó Sandybridge e eles mostram que oconsumo de energia varia devido a vários fatores. Jacobson et al. apresentam em [15]uma comparação entre um modelo de potência largamente utilizado na indústria comcaracterísticas especificadas em MCPat tool [16].

Vários estudos possuem relevantes informações, mas as soluções apresentam afalta de uma análise detalhada do consumo de energia para aplicações paralelas. Ostrabalhos não fornecem uma relação clara entre consumo de energia e Speedup. Nessesentido, o presente trabalho apresenta um análise detalhada do consumo de energiaconsiderando o consumo de energia da CPU, memória principal e memórias cache.

3. Metodologia

Essa seção apresenta a metodologia utilizada, o que inclui alguns conceitos básicos sobreo benchmark e as ferramentas de profiling utilizadas, descrevendo a configuração dosexperimentos e o modelo utilizado para medição do consumo de energia.

3.1. Descrição do Benchmark

O NAS Parallel Benchmark (NPB) é um conjunto de programas projetados para avaliaro desempenho de supercomputadores [6]. O benchmark é derivado de aplicações físicasde dinâmica de fluídos e consiste em quatro núcleos e três pseudo-aplicações. Os quatronúcleos são: 1) EP - Embarrassingly Parallel; 2) CG - Conjugate Gradient; 3) MG -Multi-Grid on a sequence of meshes; e 4) FT - discrete 3D fast Fourier Transform. As trêspseudo-aplicações são: 1) BT - Block Tri-diagonal solver; 2) SP - Scalar Penta-diagonalsolver; e 3) LU - Lower-Upper Gauss-Seidel solver.

3.2. Configuração do Experimento

A plataforma de execução utilizada nos experimentos possui dois processadores IntelXeon E5-2670 da arquitetura Sandybridge, cada um com oito núcleos. Cada processadorpossui clock de 2,6GHz, com um pico de desempenho de 166,4 Gflop/s. Cada núcleopossui 64KB de cache L1 (32KB para dados e 32KB para instruções) e 256KB de cacheL2. Todos os oito núcleos possuem 20MB de cache L3 compartilhada, também chamadade Last Level Cache (LLC). A memória principal da plataforma de execução é umaDDR3, executada a 1,600MHz com 16GB de capacidade.

Nos experimentos, 32 threads foram utilizadas. O projeto dos experimentosdefiniu 30 execuções aleatórias para evitar qualquer vício obtido no experimentoproveniente do sistema operacional e de outros fatores da plataforma de execução, a fimde obter resultados mais coesos de consumo de energia e contadores de hardware.

Page 4: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

Tabela 1. Especificação de Memória para simulação com CACTI

Parâmetros Cache L1 Cache L2 Cache L3 DDR3

Capacidade 32KB 256KB 20MB 1GBTamanho de bloco 64B 64B 64B 64BAssociatividade 8 8 16 1Tecnologia 32nm 32nm 32nm 90nmBancos 1 1 1 8Tipo cache cache cache main memoryModelo UCA UCA NUCA UCA

3.3. Ferramentas de Profiling de EnergiaNesse trabalho, são utilizadas três ferramentas para coletar dados de medição de energiae contadores de hardware, dentre elas: 1) Intel Performance Counter Monitor (PCM) [7],2) Perf Linux [8] e 3) HP CACTI [9]. A ferramenta PCM foi desenvolvida pela Intel paraestudar o consumo de energia de aplicações executadas em arquiteturas x86 recentes [7].Ela permite o conhecimento da energia gasta pela CPU. A ferramenta considera osregistradores MSR (Machine Specific Registers) usando contadores RAPL para obter oconsumo detalhado de energia das aplicações [7].

Perf é uma ferramenta de profiling para sistemas baseados em Linux que abstraialgumas diferenças de hardware entre CPU’s e realiza suas medições de desempenhoem Linux. Perf é baseada em uma interface de eventos, exportada por versões recentesdo kernel Linux. A ferramenta CACTI permite a especificação de modelos para definiruma cache integrada, com parâmetros tais como: tempo de acesso a memória, tempo deciclo, área, leakage e modelo de potência dinâmica [9]. O modelo de acesso à cachedo CACTI define os seguintes parâmetros de entrada: capacidade de cache, tamanhoda linha de cache, associatividade da cache, geração tecnológica, número de portas eo número de bancos independentes (os quais não compartilham endereços e linhas dedados). Como saída, a ferramenta produz uma configuração de cache que minimiza oatraso (com algumas exceções), com características de potência e área.

A Tabela 1 apresenta a principal entrada para a simulação com CACTI. Essaespecificação permite descrever o hardware da seção anterior. É possível observar, naTabela 1, que a capacidade de memória principal é somente 1GB, já na plataforma deexecução utilizada é 16GB. Isso ocorre porque, na simulação com a ferramenta CACTI, otamanho de memória é limitado a 1GB. Portanto, é esperado que os resultados de DRAMsejam menos precisos do que o real. Mas essa problemática é ajustada na especificaçãodas outras características do modelo.

3.4. Medição do Consumo de EnergiaA quantidade de loads, stores, load misses e stores misses de cache são informaçõesobtidas pela ferramenta Perf. Essa ferramenta fornece uma lista de eventos para mediros aspectos micro-arquiteturais, tais como número de ciclos, L1 ou LLC cache misses eassim por diante. A ferramenta não fornece eventos para níveis intermediários de cache,como a cache L2. Para estimar os eventos da cache L2, foram utilizados os resultadosobtidos a partir das caches L1 e L3, onde os misses da L1 representam o total de acessosda L2 e o total de acessos a L3 representam os misses da L2. A especificação da cache

Page 5: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

Tabela 2. Consumo de energia estimado com CACTI por acesso

CacheL1 L2 L3 DRAM

Energia por acesso 0, 0164nJ 0, 0731nJ 0, 567nJ 5, 603nJPotência Estática 0, 011W 0, 085W 0, 86W 1, 45W

Tabela 3. Tempo de execução e consumo de energia para o NPBNPB Tempo (s) Energia da CPU (J) Energia da Memória Principal (J)

1 16 24 32 1 16 24 32 1 16 24 32

BT.A 61, 4 5, 4 6, 9 5, 5 3184, 6 756, 0 926, 3 838, 8 322, 6 40, 6 49, 5 45, 2CG.A 1, 7 0, 4 0, 5 0, 5 126, 9 69, 7 74, 9 71, 4 14, 8 7, 3 7, 6 7, 5FT.A 6, 2 0, 7 0, 8 0, 8 356, 8 131, 9 139, 7 139, 0 38, 1 12, 3 13, 0 12, 9LU.A 49, 1 5, 0 5, 8 4, 8 2535, 4 673, 4 789, 2 691, 4 261, 1 44, 8 50, 5 47, 9MG.A 3, 6 1, 1 1, 2 1, 3 225, 2 154, 7 167, 1 179, 6 27, 0 15, 9 17, 7 18, 9SP.A 43, 9 4, 9 5, 9 5, 2 2273, 8 652, 2 785, 7 749, 0 253, 1 46, 1 53, 2 54, 2

BT.B 264, 3 32, 7 37, 5 34, 1 13530 4029, 4 4467, 6 4320, 5 1380, 7 287, 0 314, 9 305, 1CG.B 117, 0 28, 8 28, 9 29, 4 5954 2974, 3 2946, 0 3077, 7 673, 6 254, 8 266, 1 276, 5FT.B 74, 0 8, 3 9, 3 8, 4 3835 1101, 2 1153, 9 1152, 8 400, 0 84, 5 91, 6 90, 4LU.B 211, 6 27, 3 30, 3 28, 2 10764 3411, 1 3876, 2 3716, 5 1132, 7 257, 5 280, 7 274, 2MG.B 12, 3 3, 6 3, 9 4, 1 675, 6 432, 7 474, 5 514, 6 79, 7 41, 1 46, 6 51, 0SP.B 210, 0 50, 5 53, 3 51, 5 10704 5751, 8 6115, 9 6152, 4 1251, 7 524, 3 544, 3 559, 7

modelada no CACTI é apresentada na Tabela 1. Os resultados de energia por acesso àcache é relatado pela ferramenta CACTI e pode ser encontrado na Tabela 2.

A Equação 1 apresenta a fórmula para estimar o consumo de energia das operaçõesde leitura, onde #hit_rd_cl é a quantidade de hit de leitura nos níveis de cache (e.g. L1, L2ou L3), já #miss_rd_cl é a quantidade de miss de leitura nos níveis de cache, E_ac_rd_clé o consumo de energia por acesso de leitura para certo nível de cache e E_ac_wr_cl é oconsumo de energia por acesso de escrita para certo nível de cache.

Na Equação 2, é apresentada uma fórmula para estimar o consumo de energia paraoperações de escrita e a ideia é semelhante ao cálculo de energia por operações de leitura.

EL1read = (HitreadL1×E_acreadL1)+(MissreadL1× (E_acreadL1+E_acwriteL1)) (1)

EL1write = (HitwriteL1 × E_acwriteL1) + (MisswriteL1 × (E_acreadL1 + E_acwriteL1))(2)

O total de consumo de energia para as caches é representado pela soma da energiaconsumida nos três níveis de cache de memória, esse cálculo é resumido na Equação 3.A energia da CPU e da DRAM são obtidos pela ferramenta Intel PCM.CacheTotalEnergy = EL1read+EL1write+EL2read+EL2write+EL3read+EL3write

+ PowerStatic × Time (3)4. Resultados e DiscussãoNessa seção, os resultados do experimento são discutidos. A subseção 4.1 apresentae discute o consumo de energia da DRAM e da CPU para as aplicações executadas.Na subseção 4.2, é apresentado o Speedup e os resultados de eficiência energética. Nasubseção 4.3, é demonstrado uma comparação dos resultados de energia consumida pelaDRAM com duas ferramentas de estimativa de energia.

Page 6: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

(a) Classe A (b) Classe BFigura 1. Consumo de energia da CPU e DRAM das aplicações.

4.1. Consumo de Energia do SistemaA Tabela 3 apresenta resultados de consumo de energia com a ferramenta Intel PCM paratodas as aplicações. Esses resultados foram obtidos a partir de uma versão sequencial etrês versões paralelas, executadas com 16, 24 e 32 threads. A energia gasta pela memóriaprincipal (DIMM) mais a energia gasta pela CPU resulta no total do consumo de energiados processadores com diferentes níveis de cache.

É possível visualizar na Tabela 3 que o tempo de execução está diretamenterelacionado com o consumo de energia. Para as mesmas aplicações, tais como “CG.A”e “CG.B” (diferentes tamanhos de entrada), existe um aumento considerável no tempode execução (67 vezes mais), o que ocorre também no consumo de energia (46 vezesmais). Esse comportamento é possível visualizar em todas as aplicações apresentadasna Tabela 3. Além disso, é possível visualizar na tabela que aproximadamente 90%, emmédia, do consumo de energia total corresponde à CPU, incluindo as memórias caches, eo resto é da DRAM. Isso ocorre para todas as aplicações, mostrando que a energia gastano processamento é o maior gargalo para essas aplicações.

A Figura 1 apresenta os resultados de consumo de energia para a CPU e paramemória DRAM, ambos obtidos com a ferramenta PCM para todas as aplicações. Épossível observar que as aplicações BT, LU e SP apresentam o consumo de energia maiordo que as outras aplicações. Esse comportamento pode estar associado ao tamanho daentrada, número de iterações, tamanho do grid e time step utilizado pela aplicação.

Os resultados apresentam, na Figura 1 e Tabela 3, que quando a versão paraleladas aplicações é executada, o consumo de energia é reduzido significativamente, de 30%a 70%. Isso ocorre porque, na versão paralela, utiliza-se mais recursos de computação, oque diminui o tempo de execução. Isso somente acontece por essas aplicações possuíremum alto nível de paralelismo, permitindo a visualização clara desse comportamento.

É possível visualizar, também na Figura 1, o menor consumo de energia que ocorrequando se utiliza os 16 núcleos físicos, mostrando que o uso do Hyper-Threading nãopromove benefícios no consumo de energia. Isso torna mais evidente quando analisamosa Figura 2; essa figura apresenta os resultados de Speedup para todas as aplicaçõesexecutadas. Mais detalhes dessa explicação na subseção 4.2.

4.2. Speedup e DesempenhoA Figura 2 apresenta os resultados de Speedup para todas as aplicações executadas. Nessafigura, é possível visualizar que o melhor Speedup ocorre quando são utilizado os 16

Page 7: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

(a) Classe A (b) Classe BFigura 2. Resultados de Speedup para todos as aplicações.

(a) Classe A (b) Classe BFigura 3. Resultados de Power-Cost para todas as aplicações.

núcleos físicos. Na classe A do benchmark, o melhor Speedup ocorre com a aplicação“BT” (Block-Tridiagonal), que tem um Speedup máximo de 11, 3 vezes mais rápido doque a versão sequencial, utilizando 16 threads. Portanto, a aplicação BT não possui umaboa escalabilidade, visto que na classe B, seu melhor Speedup foi de 8×.

Para a aplicação FT (Fourier Transform), o melhor Speedup obtido foi de 8, 3× naclasse A e com a classe B foi de 8, 9×, o que mostra uma boa escalabilidade da aplicação.Além disso, essa aplicação apresentou o Speedup mais alto do que as outras aplicaçõesna classe B. Isso ocorre porque a aplicação contém um núcleo de computação sobre umamatriz de três dimensões, fazendo três transformadas de uma dimensão, o que apresentaum alto grau de paralelismo.

A aplicação “MG” (Multi-Grid) não escalou tão bem como as outras aplicações. Aorigem desse comportamento pode estar relacionada à sequência de malhas e os acessosintensivos à memória. Portanto, essa aplicação apresenta características peculiares quefazem com que o consumo de energia seja menor do que as outras aplicações, conformeé apresentado na Figura 1.

Uma correlação entre consumo de energia, Speedup e tempo de execução éapresentada na Figura 3. Nessa figura, os resultados de Power-cost são apresentados,obtidos pela Equação 4. Com esses resultados é possível verificar se uma aplicação éeficiente do ponto de vista de energia de acordo com o seu tamanho de entrada.

PowerCost =Power

Speedup(4)

De acordo com a Figura 3, aplicações como “BT”, “SP” e “LU” apresentam omelhor resultado de Power Cost para as aplicações de classe A, enquanto que a aplicação“MG” obteve o pior resultado. Já na classe B, as aplicações “FT”, “BT” e “LU”

Page 8: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

(a) Classe A (b) Classe BFigura 4. Resultados do consumo de energia da DRAM.

apresentaram os melhores resultados de Power Cost e a aplicação “MG” apresentounovamente o pior resultado. Até o início da aplicação obteve um baixo consumo deenergia, mostrando que essa aplicação não apresenta um bom nível de paralelismo.

Também é possível visualizar, na Figura 3, que para as aplicações “BT” e “LU”,ocorre uma baixa variação no Power Cost para ambas as classes. A aplicação “BT” variade 13W a 16W e a “LU” de 14, 6 a 17, 3W . Já as aplicações “FT” e “SP” mostram umaalta variação enquanto a “FT” reduz o Power Cost, a aplicação “SP” aumenta o PowerCost de 16W a 30W . Esses fatores estão extremamente relacionados à escalabilidadeapresentada dessas aplicações, anteriormente discutidas.

4.3. Comparação dos Resultados de Energia da DRAM

A Figura 4 apresenta os resultados de consumo de energia da DRAM, os quais foramobtidos pela ferramenta CACTI (teórico), e os resultados reais de consumo foram obtidospela ferramenta Intel PCM para as diferentes aplicações, as quais foram executadas com1, 16, 24 e 32 threads.

A ferramenta CACTI fornece a média do consumo de energia por acesso para osníveis de cache e memória DRAM, de acordo com a plataforma especificada. O cálculodo consumo de energia estimado foi realizado utilizando a Equação 5.

DRAMTotalEnergy = TotalReadWriteAccesses × EnergyAccess

+ PowerStatic × Time (5)

As aplicações que consomem mais energia de memória DRAM são aquelas quepossuem uma alta taxa de cache misses, pois quando o miss ocorre no último nível decache, isso geralmente implica em um acesso à memória principal (DRAM), exceto emcaso de cache-to-cache. As aplicações que apresentaram um alto consumo de energia paraa memória principal também apresentaram um alto consumo de energia no último nívelde cache. As aplicações “BT” e “CG” são exemplos desse comportamento.

As aplicações, quando executadas em paralelo, apresentaram um baixo consumode energia para a memória principal quando comparadas a sua versão sequencial. Porexemplo, a estimativa do consumo de energia teórico para aplicações sequenciais é cercade 4 vezes mais baixo do que o estimado. Já para aplicações paralelas, a aproximaçãodo teórico e do estimado aumenta, cerca de 2 vezes menor do que o estimado na média.Esse comportamento pode ser explicado por levar em consideração somente a energia

Page 9: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

Figura 5. Resultados de cache hit para 1, L2 and L3 cache hit - Para a classe A.

Figura 6. Resultados de cache hit para 1, L2 and L3 cache hit - Para a classe B.dinâmica para o cálculo, fazendo com que seja possível aproximar o teórico e o estimadopara aplicações sequenciais quando avaliamos esse comportamento para DRAM.

Considerando a energia dinâmica e estática para DRAM, ambas estimadas peloCACTI, é possível aproximar mais a estimativa teórica da real, cerca de 2× menor,aumentando a precisão (4 vezes menos do que quando consideramos apenas a energiadinâmica). Para aplicações paralelas, também acontece um aumento da estimativa teórica,iniciando com 1, 6× menor do que o estimado (2 vezes menor considerando somentea energia dinâmica). A partir desses resultados é possível visualizar a eficiência daferramenta CACTI para estimativa do consumo de energia da DRAM.

4.4. Consumo de Energia da Memória Cache

As ferramentas de Profiling não geram o consumo de energia para cada nível de cacheindividualmente, isso está relacionado às CPU’s possuírem uma arquitetura fechada.Entretanto, essa informação pode ser estimada com as ferramentas que permitem coletaro número de acessos à memória, contadores de hardware e o consumo total de energia daCPU. Nesse artigo, é apresentada uma estimativa do consumo de memória para caches.Esses resultados são apresentados e discutidos nessa subseção.

As Figuras 5 e 6 apresentam a taxa de hit das caches para três níveis de memóriacache. Esses resultados foram obtidos a partir de contadores de hardware utilizando aferramenta Perf. É possível observar nas figuras que a taxa de hit das caches diminuiquando a classe B é utilizada, nisso a taxa de miss aumenta, aumentando a quantidade deacessos à memória principal. As aplicações “CG” e “MG” apresentam muita variaçãonos resultados quando comparamos com as demais aplicações. A aplicação “CG”apresenta maior taxa de hit na L3 do que a dos outros níveis em ambas as classes. Esse

Page 10: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

(a) Classe A (b) Classe B

Figura 7. Resultados de consumo de energia de memórias cache.

comportamento é devido aos acessos irregulares de memória realizados pela aplicação.Apesar dos acessos irregulares, os acessos são realizados em regiões de memória delocalidades mais próximas. Já na aplicação “MG”, esse comportamento não ocorre, elatambém possui acessos irregulares a memória, mas os acessos são realizados em regiõesde memória mais distantes. Na “MG”, a menor taxa de hit ocorre na L3, cerca de 45%.

A Figura 7 apresenta o consumo de energia estimado das memórias cache. Essesresultados foram obtidos de acordo com as Equações 1, 2 e 3, apresentadas na Seção 3.4com a ferramenta Perf e CACTI. A ferramenta Perf foi utilizada para obter, peloscontadores de hardware, a quantidade de acessos à memória, e o CACTI para gerar oconsumo de energia por acesso, pela especificação da plataforma utilizada.

Similar ao que ocorre com os resultados de consumo de energia da DRAM eCPU, a energia consumida pela cache reduz quando o número de threads aumenta. Essefato está relacionado à redução da energia estática. Por exemplo, na classe A, a aplicaçãosequencial “BT” consumiu 4, 3J de energia dinâmica e 59J de energia estática, sendo quea energia estática foi 13, 8× maior do que a energia dinâmica, nesse caso. Essa mesmaaplicação foi executada também com 16 threads e teve um consumo de energia dinâmicade 4, 2J e 5, 2J de energia estática, reduzindo cerca de 11× o consumo de energia estática,enquanto que o consumo de energia dinâmica está é quase o mesmo. Esse comportamentoé mantido para a classe B do benchmark.

Além disso, é possível observar, na Figura 7, que o consumo de energia totalda L3 é maior do que o consumo dos demais níveis (L1 e L2). Isso é devido ao altocusto por acesso na L3, a alta taxa de miss e a maior área de circuito ocupada por estenível. Considerando somente a energia dinâmica no consumo, as aplicações “BT”, “LU”e “MG” apresentam um consumo de energia mais alto para a L1, mostrando que essasaplicações possuem o melhor reuso de dados e uma boa localidade.

A Figura 8 mostra o consumo de energia estimado para os três níveis de cache ememória principal. Isso pode ser visto na Figura 8, em que os benchmarks da classeB possuem um alto consumo de energia devido ao fato das aplicações da classe Bprocessarem um volume maior de dados, gastando mais tempo de computação.

A Figura 8 também mostra que, em todas as aplicações, a energia consumidapela DRAM é maior do que a energia consumida pelas memórias cache. Na classe A deaplicações, a maior diferença é encontrada na aplicação “MG”, quando executada comapenas uma thread, onde o consumo de energia da DRAM fica em torno de 9, 4× maiordo que o consumo de energia da cache; a DRAM consome 16.1J e as caches consomem

Page 11: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

(a) Classe A (b) Classe BFigura 8. Comparação entre o consumo de energia da DRAM e das caches.

1, 7J . A menor diferença na classe A é encontrada na aplicação “CG” com 16 threads.Nessa aplicação, a diferença é somente de 1, 7×, onde a DRAM consome 1, 06J e ascaches consomem 0, 63J .

Na classe B, a maior diferença encontrada foi na aplicação “MG” com 32 threads.Essa aplicação apresentou um consumo de energia da DRAM 10× maior do que oconsumo de energia das caches. Nela, a DRAM consumiu 58J e a cache consumiu5, 8J . A menor diferença, de 2, 2×, é encontrada na aplicação “BT”. Nessa aplicação, oconsumo da DRAM foi de cerca 609J e da cache 272J . É observado que com o aumentodo tamanho de entrada da aplicação, a diferença entre o consumo de energia da DRAM edas caches tem um aumento significativo, desde que exista o aumento na taxa de missesna L3, gerando mais acessos à DRAM.

5. ConclusãoEsse trabalho apresentou e analisou o consumo de energia da CPU e do sistema dememória para aplicações paralelas de memória compartilhada em uma plataforma HPC.As aplicações utilizadas nesse trabalho fazem parte do NAS Parallel Benchmarks. Asferramentas que possibilitaram implementar a técnica proposta foram: Intel PCM, Perfe CACTI. Os resultados apresentam que as aplicações possuem bons resultados paraparalelização em sistemas de memória compartilhada. Além disso, foi apresentada umaestimativa de consumo de energia para memórias cache e a métrica Power Cost para umaanálise detalhada de aplicações. Os resultados também mostram que o menor consumo deenergia ocorre somente quando todos os núcleos físicos são utilizados, mostrando que osistema Hyper-Threading não traz benefícios em consumo de energia para o sistema. Osresultados de energia mostram que aplicações paralelas apresentam um baixo consumode energia em memórias cache quando comparado a suas versões sequenciais, além deaumentar a taxa de cache misses gerada pelas threads.

Como trabalho futuro, pretende-se investigar o consumo de energia em outrasaplicações, como codificação de vídeo. O trabalho deverá considerar arquiteturasembarcadas multithreading, pois esses serviços utilizam bateria e possuem rigorosasrestrições de energia.

AgradecimentosEsse trabalho foi parcialmente financiado pelo Conselho Nacional para DesenvolvimentoCientífico e Tecnológico (CNPq), Coordenação de Aperfeiçoamento de Pessoal de NívelSuperior (CAPES), Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul(FAPERGS), e MCTI/RNPBrazil sobre o projeto HPC4E, subvenção n◦ 689772.

Page 12: Energy Consumption Estimation in Parallel Applications: an ... · Energy Consumption Estimation in Parallel Applications: an Analysis in Real and Theoretical Models Dieison S. Silveira1,

Referências[1] J. Mair, Z. Huang, D. Eyers and Y. Chen, "Quantifying the Energy Efficiency Challenges

of Achieving Exascale Computing", IEEE International Symposium on Cluster,Cloud and Grid Computing, pp. 943-950, 2015.

[2] R. Gioiosa, D. Kerbyson, and A. Hoisie, "Evaluating performance and power efficiencyof scientific applications on multi-threaded systems", International Workshop onEnergy Efficient Supercomputing, pp. 11-20, 2014.

[3] R. Ge, X. Feng, S. Song, H. C. Chang, D. Li and K. W. Cameron, "PowerPack: EnergyProfiling and Analysis of High-Performance Systems and Applications", IEEETransactions on Parallel and Distributed Systems, vol. 21, no. 5, pp. 658-671, 2010.

[4] A. F. Lorenzon, A. L. Sartor, M. C. Cera and A. C. S. Beck, "Optimized Use ofParallel Programming Interfaces in Multithreaded Embedded Architectures", IEEEComputer Society Annual Symposium on VLSI, pp. 410-415, 2015.

[5] M. A. Suleman, M. K. Qureshi and Y. N. Patt, "Feedback-driven threading:power-efficient and high-performance execution of multi-threaded workloads onCMPs", International Conference on Architectural Support for Programming Lang.and Oper., pp. 277-286, 2008.

[6] "NAS Parallel Benchmarks", http://www.nas.nasa.gov/publications/npb. html, June 2016.

[7] "Intel Performance Counter Monitor - A better way to measure CPU utilization",http://www.intel.com/software/pcm, June 2016.

[8] "Linux Perf tool", https://perf.wiki.kernel.org/, June 2016.

[9] "CACTI 6.5", http://www.hpl.hp.com/research/cacti, June 2016.

[10] J. L. Gustafson, "Fixed Time, Tiered Memory, and Superlinear Speedup", DistributedMemory Computing Conference, pp. 1255-1260, 1990.

[11] X.-H. Sun and L. M. Ni, "Scalable problems and memory-bounded speedup", Journal ofParallel and Distributed Computing, vol. 19, pp. 27-37, 1993.

[12] S. Song, C. Y. Su, R. Ge, A. Vishnu and K. W. Cameron, "Iso-Energy-Efficiency: AnApproach to Power-Constrained Parallel Computation", IEEE International Parallel& Distributed Processing Symposium, pp. 128-139, 2011.

[13] J. Balladini, R. Suppi, D. Rexachs and E. Luque, "Impact of parallel programming modelsand CPUs clock frequency on energy consumption of HPC systems", InternationalConference on Computer Systems and Applications, pp. 16-21, 2011.

[14] A. K. Porterfield, S. L. Olivier, S. Bhalachandra and J. F. Prins, "Power Measurement andConcurrency Throttling for Energy Reduction in OpenMP Programs", InternationalParallel and Distributed Processing Symposium Workshops, pp. 884-891, 2013.

[15] H. Jacobson, P. Bose, G. Wei, and D. Brooks, "Quantifying Sources of Error in McPATand Potential Impacts on Architectural Studies", in 21st International Symposiumon High Performance Computer Architecture (HPCA), 21st. IEEE, 2015.

[16] "McPAT", http://www.hpl.hp.com/research/mcpat, June 2016.