ArtigoERAD

4

Click here to load reader

Transcript of ArtigoERAD

Page 1: ArtigoERAD

Um Estudo sobre Benchmarks para Analise de Desempenho eConsumo de Energia em Arquiteturas Multinucleo

Adriano M. Garcia1, Arthur F. Lorenzon2, Antonio Carlos S. Beck2, Marcia C. Cera1

1Universidade Federal do Pampa (UNIPAMPA)Campus Alegrete – Alegrete – RS – Brasil

2Universidade Federal do Rio Grande do Sul (UFRGS)Instituto de Informatica – Porto Alegre – RS – Brasil

[email protected], {aflorenzon, caco}@inf.ufrgs.br,

[email protected]

Resumo. Benchmarks sao importantes ferramentas para avaliar o desempenhode sistemas computacionais. Neste trabalho, e apresentado um benchmark paraavaliar desempenho e consumo de energia de diferentes IPPs em arquiteturasmultinucleo. Tambem sao discutidos os principais benchmarks relacionados,onde e realizada uma comparacao das caracterısticas que justificam a criacaodo benchmark apresentado.

1. IntroducaoA maior parte dos processadores desenvolvidos atualmente possui varios nucleos de pro-cessamento. Esses processadores multinucleo fazem parte da maioria dos sistemas atu-ais e podem ser encontrados tanto em supercomputadores, quanto em computadores deproposito geral e sistemas embarcados. Um sistema multinucleo oferece um ambientemultitarefa, onde uma tarefa pode ser dividida e executada concorrentemente em parale-lo, visando ganho de desempenho na execucao. No entanto, em alguns casos aumentaro desempenho de uma aplicacao atraves da paralelizacao pode impactar em um maiorconsumo de energia do processador.

O aumento da complexidade das aplicacoes para sistemas embarcados tem deman-dado uma maior eficiencia computacional. Porem nesses sistemas o consumo de energiae ainda mais crıtico, pois a maior parte deles e alimentada por baterias. Em um momentoonde eficiencia energetica e um assunto largamente discutido, esse acrescimo no consumodeve ser cuidadosamente ponderado.

Na computacao, benchmark e a acao de comparar o desempenho relativo de umobjeto ou produto por meio da execucao de um programa de computador [Gray 1992].Para extrair dados corretos sobre os diferentes produtos e objetos, com a finalidade decompara-los de maneira equivalente, uma serie de testes padroes e ensaios sao realizados.

Este trabalho analisa uma serie de benchmarks focados em sistemas de alto de-sempenho e consumo de energia. Tambem e apresentado um benchmark desenvolvidopor [Lorenzon 2014] para medir o consumo de energia e desempenho de diferentes IPPs(Interfaces de Programacao Paralela) em arquiteturas multinucleo. O objetivo deste tra-balho e justificar a criacao e utilizacao deste novo benchmark atraves da comparacao domesmo com os demais benchmarks relacionados.

Page 2: ArtigoERAD

2. Estado da Arte

Existem diversos benchmarks desenvolvidos para atender diferentes propositos. A es-colha dos benchmarks estudados neste trabalho foi feita atraves de um estudo bibli-ografico, onde foram procurados benchmarks que possuem propostitos semelhantes eas mesmas arquiteturas alvo deste trabalho. Portanto, consideramos benchmarks quefornecem um conjunto de aplicacoes paralelas para arquiteturas multinucleo embarcadasou de proposito geral. Dessa forma, identificamos os seguintes benchmarks relacionados:EEMBC, Mibench, ParMiBench, SPEC, Linpack, NAS e Adept Project.

O EEMBC (Embedded Microprocessor Benchmark Consortium) e um benchmarkpara sistemas embarcados de codigo fechado (oferece licencas academicas). Ele forneceum conjunto de 23 aplicacoes implementadas em C e organizadas em varias categorias, deforma a atender uma grande parcela do mercado [Poovey et al. 2009]. Existem tambemoutras subdivisoes desse benchmark, por exemplo, o IoT Benchmark e o ULPBench.Ambos focam em medir a eficiencia energetica dos processadores embarcados.

MiBench e um benchmark utilizado para medir o desempenho de sistemas em-barcados com um unico processador [Guthaus et al. 2001]. E uma ferramenta baseadano benchmark EEMBC, porem, ao contrario do mesmo, possui codigo aberto. Esse con-junto consiste de 35 aplicacoes implementadas em C que estao divididas em 6 domıniosdiferentes, de forma semelhante ao EEMBC.

O ParMiBench e um benchmark de codigo aberto que serve, especificamente,para medir o desempenho em sistemas embarcados que possuem mais de um processador[Iqbal et al. 2010]. A estrutura desse benchmark e baseada na mesma estrutura adotadapelo MiBench e pelo EEMBC, que organizam suas aplicacoes em categorias e domıniosde aplicacoes. O ParMiBench adota 4 dessas categorias, entre elas: Automacao e ControleIndustrial, Redes, Escritorio e Seguranca. Seu conjunto consiste de 7 aplicacoes paralelasimplementadas utilizando PThreads.

O SPEC e um benchmark de codigo fechado, porem oferece licencas academicasde mais facil acesso e mais abrangentes que o EEMBC. Esse benchmark possui diver-sas subdivisoes, neste trabalho consideraremos as seguintes: SPEC MPI2007, SPECOMP2012 e SPEC Power. O SPEC MPI2007 e um conjunto de 18 aplicacoes implemen-tadas em MPI focado em testar computadores de alto desempenho. Ja o SPEC OMP2012utiliza 14 aplicacoes cientıficas implementadas em OpenMP, oferecendo metricas op-cionais de consumo de energia baseadas no SPEC Power. Por fim, o SPEC Power testa oconsumo energetico e o desempenho de servidores utilizando aplicacoes CPU/Memory-Bound implementadas em C e Fortran.

O Linpack consiste de um pacote de aplicacoes que resolvem sistemas linearesaleatorios de dupla precisao aritmetica em arquiteturas de alto desempenho. Seu codigo eaberto e suas 7 aplicacoes formam uma colecao de sub-rotinas em Fortran, em sua maioriaCPU-Bound. As implementacoes paralelas utilizam MPI. Ele e o principal benchmarkque compoe o chamado High-Performance Computing Benchmark Challenge, que e umalista com os 500 computadores de alto desempenho mais rapidos do mundo.

O NAS e um pequeno conjunto de programas de codigo aberto que servem paraavaliar o desempenho de supercomputadores paralelos. Esse benchmark e composto 11aplicacoes que estao implementadas em um modelo hıbrido de MPI e OpenMP. Essas

Page 3: ArtigoERAD

aplicacoes sao tanto CPU-Bound, quanto Memory-Bound.

O Adept Benchmark e utilizado para medir o desempenho e o consumo de energiade arquiteturas paralelas. Seu codigo e aberto e esta dividido em 4 conjuntos: Nano,Micro, Kernel e Aplicacao. O conjunto Micro, por exemplo, consiste de 12 aplicacoessequenciais e paralelas com OpenMP, focando em aspectos especıficos do sistema, comogerenciamento de processos, cache, entre outros. Por outro lado, o conjunto Kernel e oque mais se assemelha ao benchmark proposto neste trabalho, portanto ele sera adotadopara fins de comparacao. Ele possui 10 aplicacoes implementadas de modo sequencial eparalela com OpenMP, MPI e uma delas em UPC.

3. Classe de Benchmarks PropostaA classe de benchmarks proposta neste trabalho consiste de 13 aplicacoes implemen-tadas em C e suas complexidades variam de O(n) a O(n3). Essas aplicacoes ja foramcategorizadas em estudos anteriores de acordo com a quantidade de comunicacao entrethreads/processos [Lorenzon 2014]. A comunicacao pode se tornar um gargalo no desem-penho de aplicacoes paralelas, impactando no consumo de energia. Alem da quantidadede comunicacao, novas categorias deverao ser encontradas atraves da analise dos dadosde execucao utilizando ferramentas como o PAPI e o Intel R© Parallel Studio XE. Dados deconsumo de energia poderao ser obtidos atraves do PAPI (se for conhecido o consumo deenergia a nıvel de instrucao); softwares que estimam o consumo, como o Intel R© RAPL;ou medindo diretamente na fonte de energia utilizando um multımetro.

As aplicacoes estao paralelizadas em 4 IPPs (Interfaces de Programacao Paralela),sendo elas: PThreads, OpenMP, MPI-1 e MPI-2. Essas IPPs sao o alvo desse benchmark,pois foram escolhidas por serem as mais difundidas no ambito academico e tambempor serem suportadas por qualquer arquitetura multinucleo, tanto embarcada quanto deproposito geral. Portanto, o objetivo deste benchmark e fornecer ao usuario uma ferra-menta que permita avaliar o desempenho e o consumo de energia de diferentes IPPs emqualquer arquitetura multinucleo.

Atraves da identificacao das principais caracterısticas desse benchmark, foipossıvel realizar uma comparacao mais aprofundada em relacao aos benchmarks rela-cionados. A Tabela 1 mostra todos os benchmarks apresentados neste trabalho eclassifica-os utilizando criterios definidos de acordo com as principais caracterısticas dobenchmark proposto.

Analisando a tabela, nota-se que, embora todos os benchmarks possuamaplicacoes capazes de executar em diferentes arquiteturas multinucleo, alguns deles naopossuem um foco em sistemas embarcados, somente em computadores de proposito gerale supercomputadores. Tambem pode-se observar que apenas 3 dos benchmarks relaciona-dos focam no consumo de energia, oferecendo ferramentas e instrucoes para a medicao.

Entre os benchmarks, somente 4 deles possuem um conjunto de aplicacoes para-lelas. Por outro lado, somente o Adept utiliza diferentes IPPs, porem ainda assim naocorrespondem as IPPs alvo deste trabalho. Embora o NAS utilize MPI e OpenMP, seumodelo de programacao hıbrido nao permite realizar essa comparacao entre as IPPs. Porfim, a maioria dos benchmarks apresentados possuem codigo aberto, somente o EEMBCe o SPEC nao se incluem nesse grupo, entretanto sao oferecidas licencas academicas nosdois casos.

Page 4: ArtigoERAD

Table 1. Pontos de comparacao entre os benchmarks

Criterios EEMBC MiBench ParMiBench SPEC Linpack NAS Adept BenchmarkProposto

Executa em qualquerarquitetura multinucleo X X X X X X X X

Inclui sistemasembarcados X X X – – – X X

Avalia consumode energia X – – X – – X X

Possui aplicacoesparalelizadas – – X – X X X X

Implementa asIPPs alvo – – – – – – – X

Possui codigosabertos a comunidade – X X – X X X X

4. Trabalhos FuturosAtraves deste estudo foi possıvel observar que, embora existam diversos benchmarks rela-cionados, ainda nao ha nenhum focado em verificar o desempenho e o consumo de energiade aplicacoes implementadas com diversas IPPs. Portanto, este trabalho serviu para vali-dar a ideia proposta com o benchmark apresentado.

O benchmark proposto ainda esta sendo desenvolvido e estruturado, portanto asaplicacoes ainda nao estao completamente categorizadas. Contudo, ja existe uma divisaode acordo com a demanda de comunicacao dessas aplicacoes que foi realizada em traba-lhos anteriores [Lorenzon et al. 2015]. Atualmente este benchmark esta em fase de testese os proximos passos deste estudo consistem em organizar e categorizar todas as suasaplicacoes para futuramente ser disponibilizado para a comunidade.

ReferencesGray, J. (1992). Benchmark handbook: for database and transaction processing systems.

Morgan Kaufmann Publishers Inc.

Guthaus, M. R., Ringenberg, J. S., Ernst, D., Austin, T. M., Mudge, T., and Brown, R. B.(2001). Mibench: A free, commercially representative embedded benchmark suite. InWorkload Characterization, IEEE Workshop on, pages 3–14. IEEE.

Iqbal, S., Liang, Y., and Grahn, H. (2010). Parmibench - an open-source benchmark forembedded multiprocessor systems. Computer Architecture Letters, 9(2):45–48.

Lorenzon, A. F. (2014). Avaliacao do desempenho e consumo energetico de diferentesinterfaces de programacao paralela em sistemas embarcados e de proposito geral. Mas-ter’s thesis, Universidade Federal do Rio Grande do Sul.

Lorenzon, A. F., Sartor, A. L., Cera, M. C., and Beck, A. C. S. (2015). Optimized useof parallel programming interfaces in multithreaded embedded architectures. In VLSI(ISVLSI), 2015 IEEE Computer Society Annual Symposium on, pages 410–415.

Poovey, J., Levy, M., Gal-On, S., Conte, T. M., et al. (2009). A benchmark characteriza-tion of the eembc benchmark suite. International Symposium on Microarchitecture.