Oportunidades para economia de energia em dispositivos m´oveis
Jo˜ao H. S. Hoffmam, Tiago Barros, Sandro Rigo e Edson Borin
1
Instituto de Computac¸˜ao – UNICAMP Campinas – SP – Brasil
Abstract. This paper investigates the usage of parallel code in mobile devices and its correlaction with the energy consumption of those equipments, working with some experiments with different frequencies and number of cores operating.
The results show the advantages of paralelization and the possibility of improving energy savings even further by a careful selection of core operation frequencies combined with the code paralelization.
Resumo. Este artigo investiga o uso de c´odigo paralelo em dispositivos m´oveis e a sua relac¸˜ao com o consumo energ´etico desses equipamentos, baseando-se em experimentos realizados com diferentes frequˆencias e n´umero de n´ucleos de pro- cessamento. Os resultados mostram as vantagens da paralelizac¸˜ao e tamb´em a possibilidade de tornar a reduc¸˜ao do consumo de energia ainda maior atrav´es de uma selec¸˜ao cuidadosa das frequˆencias de operac¸˜ao dos n´ucleos combinada com a paralelizac¸˜ao das aplicac¸˜oes.
1. Introduc¸˜ao
Dispositivos m´oveis representam uma grande revoluc¸˜ao: equipamentos como smartphones e tablets foram respons´aveis pelo surgimento de uma nova forma de pensar e usar a tecnologia, conquistaram uma grande e lucrativa parte dos mercados e trouxeram novos desafios para a ciˆencia. A conjuntura atual requer que tais dispositivos apresentem desempenho cada vez melhor, ao mesmo tempo que a autonomia da bateria deve ser suficiente para o uso cotidiano sem restric¸˜oes.
Neste trabalho, a execuc¸˜ao de c´odigo paralelo em dispositivos m´oveis com m´ultiplos n´ucleos de processamento foi explorada, a identificar como ela pode afetar a potˆencia, o consumo de energia e o desempenho do sistema.
Os resultados indicam que uma reduc¸˜ao consider´avel no consumo energ´etico pode ser alcanc¸ada sem a gerac¸˜ao de preju´ızos para o desempenho por meio do paralelismo, e at´e mesmo c´odigos menos paraleliz´aveis apresentaram uma regi˜ao de interesse que merece um estudo mais aprofundado.
Este artigo est´a organizado da seguinte forma: a Sec¸˜ao 2 discute os trabalhos re- lacionados. As Sec¸˜oes 3 e 4 apresentam a metodologia e os resultados dos experimentos, respectivamente. Por fim, a Sec¸˜ao 5 apresenta as conclus˜oes e trabalhos futuros.
2. Trabalhos Relacionados
A reduc¸˜ao do consumo energ´etico em dispositivos m´oveis tem sido um forte ramo de pes-
quisa nos ´ultimos anos. Smartphones, tablets e net/note/ultrabooks devem satisfazer, ao
mesmo tempo, as condic¸˜oes de “desempenho” e “autonomia da bateria”, o que gera diversos
estudos na ´area. Sheikh et al. [Sheikh et al. 2012] trabalharam nesse problema e trouxeram algumas abordagens de outros trabalhos para diferentes cen´arios e processadores (single- core, multi-core, paralelos/distribu´ıdos). Duas importantes considerac¸˜oes s˜ao feitas: n˜ao havia estudos sobre plataformas heterogˆeneas, do mesmo modo que faltavam estudos sobre a gerac¸˜ao de calor desses dispositivos. Basmadjian e de Meer [Basmadjian e de Meer 2012]
estudaram e propuseram uma nova forma de se modelar o consumo de processadores com m´ultiplos n´ucleos, na qual o consumo total se mostrou menor que a soma dos consumos individuais, uma vez que no cen´ario real os n´ucleos compartilham informac¸˜oes.
Bournoutian e Orailoglu [Bournoutian e Orailoglu 2013] propuseram um meca- nismo capaz de expandir e contrair o tamanho da cache do processador baseando-se nas informac¸˜oes vindas tanto da compilac¸˜ao quanto da execuc¸˜ao de um c´odigo. Os resultados mostraram uma reduc¸˜ao do consumo de energia de at´e 29% com um impacto m´ınimo no desempenho de processadores para dispositivos m´oveis. Castro et al. [Castro et al. 2013]
compararam um processador com m´ultiplos n´ucleos, uma plataforma NUMA e uma pla- taforma embarcada many-core no problema do caixeiro viajante. Como resultado, a plata- forma embarcada apresentou bom desempenho, perdendo apenas para a plataforma NUMA, mas ofertando um consumo energ´etico entre 9 e 14 vezes menor, o que permitiu a conclus˜ao de que plataformas many-core podem constituir uma excelente soluc¸˜ao para o futuro. En- tretanto, o c´odigo testado n˜ao requeria muita comunicac¸˜ao de dados entre os n´ucleos, e isso n˜ao fora levado em considerac¸˜ao, tornando-se objeto de estudos posteriores. Os cus- tos de comunicac¸˜ao foram estudados por Nishikawa et al. [Nishikawa et al. 2012], os quais compararam uma APU e uma combinac¸˜ao convencional entre CPU e GPU. Os resultados mostraram que o desempenho por Watt foi bastante superior na APU, embora o desempenho propriamente dito tenha sido maior na combinac¸˜ao CPU+GPU. O trabalho conclui que os custos de comunicac¸˜ao tˆem um grande impacto, principalmente nos dispositivos m´oveis, o que torna as APUs forte candidatas para o mercado do futuro.
J´o´zwiak e Jan [J´o´zwiak e Jan 2013] exploram a construc¸˜ao de aceleradores especi- alizados para aplicac¸˜oes de alta demanda e concluem que a paralelizac¸˜ao total ´e a melhor opc¸˜ao para reduzir o consumo energ´etico, enquanto que a serializac¸˜ao ´e a melhor opc¸˜ao para reduzir a ´area do circuito. O n´ıvel de paralelismo tamb´em foi estudado por Tudor e Teo [Tudor e Teo 2012], que propuseram um modelo para avaliar o desempenho e consumo por meio dessa vari´avel.
Vogeleer et al. [Vogeleer et al. 2014] proveem um modelo anal´ıtico para estimar o consumo de energia de uma sequˆencia de c´odigo em um dispositivo m´ovel. Eles validam o modelo com experimentos pr´aticos e mostram que existe uma curva convexa no gr´afico de Energia vs Frequˆencia de operac¸˜ao, indicando que as frequˆencias que resultam em um menor consumo de energia n˜ao s˜ao as menores nem as maiores do dispositivo. Os resultados experimentais deste trabalho indicam que os resultados encontrados por Vogeleer et al. se estendem para outras aplicac¸˜oes e outros dispositivos m´oveis.
3. Metodologia
A fim de explorar como a execuc¸˜ao de c´odigo paralelo em dispositivos m´oveis com m´ultiplos n´ucleos de processamento pode afetar a potˆencia, o consumo de energia e o de- sempenho do sistema, foram utilizados os seguintes materiais:
• Um smartphone Samsung Galaxy S3 (GT-I9300), que cont´em um processador Exy-
nos com 4 n´ucleos baseados na arquitetura Cortex-A9 da ARM, capazes de operar a
1.4Ghz;
• Uma fonte de alta precis˜ao Minipa (modelo MPL-3305M);
• Um resistor de 0.25 ohm, produzido atrav´es da conex˜ao em paralelo de quatro resis- tores de alta precis˜ao com resistˆencia de 1 ohm;
• Um dispositivo de aquisic¸˜ao de dados NI USB-6212, da National Instruments;
• Uma estac¸˜ao de trabalho para coleta e processamento dos dados produzidos pelo dispositivo de aquisic¸˜ao;
• A su´ıte de aplicativos PARSEC 3.0, que utiliza as t´ecnicas pthreads e openMP para a paralelizac¸˜ao dos benchmarks; e
• O compilador GCC vers˜ao 4.8 para ARM. A vers˜ao utilizada foi configurada para fazer uso das instruc¸˜oes de ponto flutuante do processador (hard-float).
A bateria do smartphone foi removida e os contatos do aparelho foram ligados na fonte de alta precis˜ao em s´erie com o resistor. O dispositivo de aquisic¸˜ao de dados foi conectado aos resistores para coletar amostras da diferenc¸a de potencial dos terminais dos resistores. Estas amostras s˜ao ent˜ao utilizadas para computar a corrente, potˆencia m´edia e consumo de energia em um intervalo curto de tempo (1/1000 segundos).
As aplicac¸˜oes da su´ıte PARSEC foram compiladas com o compilador GCC e as mes- mas foram transferidas para o aparelho celular e executadas atrav´es do aplicativo adb, dis- tribu´ıdo pelos desenvolvedores do sistema operacional Android. O rel´ogio do smartphone teve de ser sincronizado com o da estac¸˜ao de trabalho e foi desenvolvido um script de execuc¸˜ao que registra o hor´ario de in´ıcio e t´ermino da execuc¸˜ao da aplicac¸˜ao, o que permite identificar os pontos de in´ıcio e fim da aplicac¸˜ao nos dados coletados pelo dispositivo de aquisic¸˜ao. Ap´os o disparo da execuc¸˜ao dos aplicativos, o cabo de comunicac¸˜ao entre o dis- positivo m´ovel e a estac¸˜ao de trabalho ´e desconectado para evitar que o mesmo fac¸a uso da energia disponibilizada no cabo de comunicac¸˜ao.
Os testes foram realizados em todas as frequˆencias dispon´ıveis para o smartphone (de 200Mhz a 1.4Ghz em incrementos de 100Mhz), e o modo avi˜ao foi ativado para mini- mizar interferˆencias nos experimentos.
4. Resultados Experimentais
Duas aplicac¸˜oes da su´ıte PARSEC foram selecionadas para este trabalho: “x264” e “Fluida- nimate”. A primeira trabalha com a compress˜ao de um v´ıdeo no padr˜ao MPEG-4 e possui um alto grau de paralelismo. J´a a segunda realiza uma simulac¸˜ao f´ısica de um fluido e possui um grau de paralelismo menor.
As Figuras 1 (a) e (b) apresentam os resultados experimentais para a aplicac¸˜ao
“x264”. A Figura 1 (a) mostra que quanto maior o n´umero de n´ucleos, melhor ´e o de- sempenho energ´etico do sistema, o que ´e teoricamente esperado, visto que a aplicac¸˜ao usada apresenta alta capacidade de paralelizac¸˜ao. O gr´afico da figura tamb´em apresenta uma curva convexa, como sugerido por Vogeleer et al. [Vogeleer et al. 2014].
A Figura 1 (b) apresenta o consumo energ´etico e o desempenho em func¸˜ao da
potˆencia de cada configurac¸˜ao no experimento com 4 n´ucleos. Conforme pode ser obser-
vado, o tempo de execuc¸˜ao decresce conforme a potˆencia aumenta. Isso ocorre porque os
pontos com maior potˆencia s˜ao associados a maiores frequˆencias de operac¸˜ao. Entretanto,
como a energia ´e uma func¸˜ao integral dependente das vari´aveis tempo e potˆencia, o saldo
final para altas frequˆencias se mostrou quase t˜ao ineficiente quanto para frequˆencias muito
200 400 600 800 1000 1200 1400
2030405060
Frequência(Mhz)
Energia(J)
●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
● ● ● ●
●
●
●
●
●
●
●
●
● ● ● ● ●
●
●
●
●
●
●
●
● ● ●
●
● ●
●
●
●
●
●
●
●
●
1 núcleo 2 núcleos 3 núcleos 4 núcleos
(a) Energia em func¸˜ao da frequˆencia utilizando-se 1, 2, 3 e 4 n´ucleos com- putacionais
●
●
●
●
●
●
●
●
●
●
●
●
●
0.5 1.0 1.5
1618202224
Potência(W)
Energia(J)
●
●
●
●
●
●
●
●
●
● ●
● ●
10203040506070
Tempo(s)
●
●
Energia Tempo
(b) Energia e tempo em func¸˜ao da potˆencia para a execuc¸˜ao com 4 n´ucleos
Figura 1: Resultados experimentais para a aplicac¸ ˜ao “x264”
baixas. Tamb´em pode ser observada uma regi˜ao ´otima em termos de consumo energ´etico, com potˆencia pr´oxima a 0.8W, na qual a energia gasta ´e aproximadamente 32,7% menor se comparada `a configurac¸˜ao de desempenho equivalente para dois n´ucleos, e cerca de 9,1%
menor caso a comparac¸˜ao seja com a execuc¸˜ao de tempo equivalente em 3 n´ucleos. Se comparado ao melhor tempo para a execuc¸˜ao com 4 n´ucleos, tem-se que a regi˜ao ´otima apresenta uma reduc¸˜ao de consumo da ordem de 30%, embora execute em um tempo cerca de 63,7% maior, o que pode n˜ao ser um problema em aplicac¸˜oes que possam executar mais lentamente sem gerar preju´ızos percept´ıveis ao usu´ario.
E importante observar que, apesar da configurac¸˜ao de 4 n´ucleos com potˆencia de 0.8 ´ W atingir uma boa relac¸˜ao de desempenho e consumo de energia, a produc¸˜ao de calor deve ser levada em considerac¸˜ao, pois o aumento substancial da temperatura do dispositivo pode afetar o conforto do usu´ario ou mesmo comprometer o funcionamento do sistema. Para futuro, existe a pretens˜ao de estudar a variac¸˜ao de temperatura do dispositivo em func¸˜ao da potˆencia exercitada.
As Figuras 2 (a) e (b) apresentam os resultados para a aplicac¸˜ao de animac¸˜ao de fluidos
1. Pode-se observar uma variac¸˜ao maior nos resultados entre energia e frequˆencia de operac¸˜ao. Entretanto, ainda assim as curvas referentes a 2 e 4 n´ucleos apresentam conve- xidade e, novamente, a configurac¸˜ao com o maior n´umero de n´ucleos se mostrou a mais eficiente.
O gr´afico da Figura 2 (b) apresenta a energia e o tempo em func¸˜ao da potˆencia para a configurac¸˜ao mais eficiente. Observa-se uma curva de energia bem menos comportada, mas ainda assim existe uma regi˜ao ´otima por volta de 0.7W que apresenta grande reduc¸˜ao no consumo de energia sem causar grandes preju´ızos no tempo gasto.
1
A curva para 3 n´ucleos n˜ao ´e apresentada pois a aplicac¸˜ao s´o ´e capaz de executar com 2
nthreads.
200 400 600 800 1000 1200 1400
202530354045
Frequência(Mhz)
Energia(J)
●
● ●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
● ●
●
●
●
●
●
● ●
● ●
●
●
●
●
●
●
●
●
1 núcleo 2 núcleos 4 núcleos
(a) Energia em func¸˜ao da frequˆencia utilizando-se 1, 2, 3 e 4 n´ucleos com- putacionais
●
●
●
●
●
●
●
●
●
●
●
●
●
0.4 0.6 0.8 1.0 1.2 1.4
20212223242526
Potência(W)
Energia(J)
●
● ●
●
●
●
●
●
●
●
●
●
●
203040506070
Tempo(s)
●
●
Energia Tempo