• Nenhum resultado encontrado

Consumo de Software pela Abordagem Baseada em Medi¸ c˜ ao

An´ alise do Estado da Arte

3.2 CONSUMO RELATIVO AO PROCESSAMENTO DOS

3.2.1 Consumo de Software pela Abordagem Baseada em Medi¸ c˜ ao

Os primeiros passos na dire¸c˜ao da pesquisa sobre o consumo de energia de softwares teve in´ıcio com os trabalhos de Tiwari, Ma- lik e Wolfe (1994), nos quais s˜ao estabelecidas as diretrizes b´asicas relacionadas com o consumo das instru¸c˜oes do c´odigo. O modelo desenvolvido define um custo para cada instru¸c˜ao, tendo como base um intervalo de tempo em ciclos de execu¸c˜ao para um processador 486DX. No desenvolvimento dos seus experimentos, foi utilizada a t´ecnica de medi¸c˜ao direta para obter a corrente consumida, ou seja, foram usados instrumentos el´etricos. Posteriormente, em 1996 foi ampliado o cen´ario de testes para trˆes processadores, houve inclus˜ao de detalhes no modelo e tamb´em foi aumentada a sua complexidade e precis˜ao (TIWARI et al., 1996).

Como a energia consumida pelo processamento do software con- tribui de maneira n˜ao desprez´ıvel na conta do consumo energ´etico de um SCF, s˜ao necess´arios modelos capazes de estimar tal consumo. As formula¸c˜oes propostas nessa ´area incluem modelos est´aticos e dinˆami- cos, que s˜ao avaliados por meio de t´ecnicas baseadas em medi¸c˜oes ou por simula¸c˜ao (DALAL; RAVIKUMAR, 2001;KAVVADIAS et al., 2004;

VENKATACHALAM; FRANZ, 2005).

Por defini¸c˜ao, os modelos est´aticos avaliam o c´odigo compilado e, portanto, s˜ao limitados `a captura de efeitos decorrentes do overhead, tipos de dado de entrada e rela¸c˜ao com o ambiente operacional. A principal caracter´ıstica de tais modelos ´e a atribui¸c˜ao de custos `as instru¸c˜oes que procuram incluir informa¸c˜oes sobre a arquitetura e sobre fatores que interferem no consumo (MALIK; MARTONOSI; LI, 1997).

Por outro lado, os modelos dinˆamicos obtˆem mais ˆexito no quesito captura dos efeitos, por´em s˜ao mais complexos e a estimativa ´e realizada, normalmente, atrav´es de simula¸c˜oes. Nesse caso, a complexi- dade decorre do fato de que ´e necess´ario o conhecimento de detalhes da arquitetura, da capacidade de modelar os efeitos decorrentes dos dados processados e dos acessos `a mem´oria. No entanto, segundo Nogueira, Maciel e Callou (2009), essas ainda s˜ao estimativas mais exatas do que as t´ecnicas baseadas em medi¸c˜oes.

Nessas ´ultimas, os resultados se aproximam do valor real, tor- nando o modelo pr´oximo ao do comportamento do processador. Con- tudo, deve-se considerar que a exatid˜ao dos resultados depende de fatores como: acessibilidade `a plataforma testada, qualidade dos instru- mentos de medida e t´ecnica utilizada na coleta dos resultados (KAVVA- DIAS et al., 2004).

Na continuidade das pesquisas, BRANDOLESE et al. (1999) propuseram uma metodologia geral, que ´e independente do proces- sador. A metodologia abstrai o n´ıvel arquitetˆonico e se concentra nas funcionalidades envolvidas na execu¸c˜ao das instru¸c˜oes. Assim, o modelo ´e constru´ıdo sobre um conhecimento a priori da energia que caracteriza um conjunto de instru¸c˜oes. O trabalho mais recente da equipe estabelece um modelo, no qual s˜ao avaliados os aspectos dinˆamicos e est´aticos do c´odigo. Primeiramente o c´odigo ´e repre- sentado em uma etapa intermedi´aria, que compreende blocos b´asicos com instru¸c˜oes de diferentes tipos. Essa representa¸c˜ao ´e modelada considerando: o c´odigo fonte intermedi´ario, o comportamento dinˆamico e a arquitetura alvo. Cada um desses elementos recebe um custo que integra equa¸c˜oes matriciais que ao serem resolvidas estimam a energia do c´odigo (BRANDOLESE; CORBETTA; FORNACIARI, 2011).

Embora existam alguns projetos que caracterizem o consumo de um conjunto de instru¸c˜oes (LEE; ERMEDAHL; MIN, 2001; LEE et al., 1995; LI; MALIK; WOLFE, 1999), as op¸c˜oes para realizar essa tarefa em diferentes arquiteturas e de forma automatizada ainda s˜ao es- cassas. Procurando preencher essa lacuna, Wendt, Grumer e Steger (2010) apresentam uma t´ecnica de medi¸c˜ao que pode combinar uma

amostragem por rel´ogio ou dirigida por energia. O modelo proposto calcula a energia considerando o consumo das instru¸c˜oes independentes, dependˆencia dos dados, a cache e os componentes externos, tais como barramento, mem´oria e perif´ericos. Apesar dessa t´ecnica de medi¸c˜ao ser completa, ela exige etapas intermedi´arias que precisam de circuitos eletrˆonicos para viabilizar a medida da energia.

Nessa ´area, Sinha e Chandrakasan (2000) apresentam uma pes- quisa de base, na qual prop˜oem um modelo energ´etico que prevˆe a energia total consumida polo processamento do software. A particula- ridade do modelo reside no fato de que os efeitos da corrente de fuga e da potˆencia dinˆamica (introduzidos na se¸c˜ao 3.1 (p.50)) s˜ao calculados de maneira separada. Para calcular o consumo do processador s˜ao usadas as parcelas da potˆencia dinˆamica e da potˆencia da corrente de fuga, desconsiderando, portanto, os efeitos da corrente de curto-circuito. Os transistores CMOS s˜ao projetados para operar com tens˜ao de limiar (threshold voltage (Vth)) cada vez menores, o que faz com que a corrente

sublimiar de fuga n˜ao deva ser desconsiderada. Os resultados dos testes realizados com o microprocessador StrongARM SA-1100, para um determinado conjunto de programas2, indicaram que o percentual

da energia da corrente de fuga ´e em torno de 10% e o seu valor aumenta exponencialmente com a tens˜ao de alimenta¸c˜ao e decresce linearmente com a frequˆencia de opera¸c˜ao.

Apesar dos esfor¸cos para mensurar a energia dos programas computacionais, as abordagens propostas s˜ao estimadas mediante uma arquitetura espec´ıfica. Essa caracter´ıstica imp˜oe restri¸c˜oes para a defini¸c˜ao das m´etricas de energia, as quais poderiam ser usadas para comparar padr˜oes de software independentemente do hardware.

Ainda, observa-se que os m´etodos descritos utilizam-se do tra¸cado das instru¸c˜oes em baixo n´ıvel para um dado programa, sendo que o tempo para esse processo torna-se proibitivo para aplica¸c˜oes mais extensas. Dessa forma, al´em de serem necess´arias, s˜ao vis´ıveis as consequˆencias de transpor as abordagens para n´ıveis de maior abstra¸c˜ao (CHATZIGEORGIOU; STEPHANIDES, 2002).

3.2.2 Consumo do Software pela Abordagem Baseada em Simula¸c˜ao

Ferramentas de simula¸c˜ao vem sendo usadas para mensurar o consumo energ´etico proveniente da execu¸c˜ao de um determinado

modelo de software. S˜ao trˆes os aspectos que permitem caracterizar um trabalho de simula¸c˜ao: o desempenho, a flexibilidade e o detalhamento. O desempenho determina a quantidade de carga de trabalho que o modelo pode exercer, dado o processador e os recursos dispon´ıveis para a simula¸c˜ao. A flexibilidade indica o quanto o modelo est´a estruturado para adapta¸c˜oes, permitindo altera¸c˜oes na estrutura implementada ou mesmo projetos completamente diferentes. Na pr´atica, a otimiza¸c˜ao simultˆanea das trˆes caracter´ısticas do modelo ´e dif´ıcil. Assim, a maioria dos simuladores dispon´ıveis consegue otimizar um ou dois dos aspectos citados. Isso explica a existˆencia de diferentes ferramentas de simula¸c˜ao (AUSTIN; LARSON; ERNST, 2002).

A seguir apresenta-se um resumo descritivo das principais fer- ramentas de simula¸c˜ao dispon´ıveis para fins de avalia¸c˜ao do consumo energ´etico.

1. ECOSystem (ZENG et al., 2002): ´

E proposto o modelo de “Commodities de Corrente” (Currentcy) que unifica a contabilidade energ´etica dos componentes de hard-

ware. Dessa forma, torna-se poss´ıvel a distribui¸c˜ao equitativa da energia dispon´ıvel entre os aplicativos. O modelo em quest˜ao trata a energia como um commoditie, atribu´ıdo aos diferentes re- cursos do sistema de forma que possam operar desde que tenham o suficiente em unidades de transa¸c˜ao. A proposta ´e resolver o problema de gerˆencia dos recursos da bateria que envolve: (i) conhecimento e determina¸c˜ao do n´ıvel de consumo do recurso; (ii) tarifar adequadamente o uso dos componentes do sistema e (iii) atribuir custos apropriados a cada componente. Periodicamente, o sistema operacional distribui uma quantidade fixa de unidades de transa¸c˜ao entre as aplica¸c˜oes, utilizando como referˆencia a taxa de drenagem da bateria. Os aplicativos podem utilizar os recursos espec´ıficos somente se eles podem saldar a sua utiliza¸c˜ao. Quando um aplicativo ´e executado, gasta parte desse estoque. H´a a interrup¸c˜ao dessa aplica¸c˜ao quando o sua commoditie se esgota (VENKATACHALAM; FRANZ, 2005).

2. Wattch (BROOKS; TIWARI; MARTONOSI, 2000):

Indicado para projetar a arquitetura de hardware em baixo-n´ıvel, dando condi¸c˜oes da an´alise e posterior otimiza¸c˜ao do consumo de energia. A informa¸c˜ao do consumo de potˆencia ´e fundamentada no fato de que os modelos de consumo dos microprocessadores s˜ao estruturas comuns que dependem da capacitˆancia interna do processador.

3. PowerScope (FLINN; SATYANARAYANAN, 1999c):

Registra a energia consumida em n´ıvel de sistema operacional. Coleta uma fra¸c˜ao da energia consumida usando um amostrador estat´ıstico dirigido por tempo (time-driven statistical sampler ). Esse mapeia e atribui uma identidade process identifier (PID) a um processo espec´ıfico do sistema, desse modo, possibilita a obten¸c˜ao de informa¸c˜oes de menor granularidade, relativas aos diferentes procedimentos dentro do processo. Este n´ıvel de detalhamento favorece o descobrimento de quais processos do sistema s˜ao respons´aveis pelo consumo de energia. Um software de p´os-processamento mapeia o dado amostrado para a estrutura do programa. Assim, ´e produzido um perfil de consumo de energia por processo e por procedimento.

4. SoftExplorer : (LAURENT; SHANKAR, 2007)

Baseia-se na an´alise do consumo do processador em n´ıvel fun- cional. Inicialmente, o processador ´e dividido em blocos fun- cionais, para, posteriormente, serem identificados os elementos que impactam na atividade funcional do bloco e no consumo de energia. Ao final, essas caracter´ısticas s˜ao avaliadas para se conhecer como interferem no consumo do processador.

Essa estrutura, deu origem `a ferramenta comercial VisualSim

Power Modeling Toolkit que auxilia na captura da energia dinˆa- mica do modelo, a partir das informa¸c˜oes que o usu´ario detalha nas configura¸c˜oes do simulador. Essas informa¸c˜oes podem ser valores fixos de potˆencia ou equa¸c˜oes, relacionando vari´aveis do pr´oprio modelo. A base da ferramenta ´e formada por um vasto conjunto de blocos que s˜ao separados em bibliotecas, o que permite modelar em n´ıvel de hardware ou software e em diferentes n´ıveis de abstra¸c˜ao, sistemas como processadores, perif´ericos, barramentos, sensores e redes sem fio.

5. SimpleScalar : (LLC, 2010) ´

E um conjunto de ferramentas n˜ao comerciais que se constitui por uma infraestrutura de software utilizada: na constru¸c˜ao de aplica¸c˜oes de modelagem para a an´alise de desempenho de programa, na modelagem microarquitetural e na coverifica¸c˜ao de

hardware e software. O conjunto de ferramentas inclui amostras

de simuladores, variando de um simulador r´apido funcional a um moderno modelo do processador, com escalonamento dinˆamico, sem bloqueio de cache, com execu¸c˜ao especulativa e com uma

previs˜ao de desvio. Al´em dos simuladores, o SimpleScalar inclui ferramentas de visualiza¸c˜ao de desempenho, recursos de an´alise estat´ıstica, depura¸c˜ao e verifica¸c˜ao da infraestrutura.

Este conjunto de ferramentas implementa a arquitetura Sim-

pleScalar que ´e uma arquitetura pr´oxima e derivada da arquite- tura microprocessor without interlocked pipeline stages (MIPS). O conjunto leva os c´odigos compilados para a arquitetura Sim-

pleScalar e simula a sua execu¸c˜ao em um dos muitos simuladores de processadores. As vantagens desse conjunto de ferramentas ´e a flexibilidade, portabilidade, extensibilidade e performance.

Ao mesmo tempo em que a tarefa de mensurar o consumo ´

e amenizada pelo uso de simuladores, tem-se que a aplicabilidade desse recurso computacional ´e restrita `as bibliotecas da arquitetura do

hardware sob teste. Observa-se ainda que alguns simuladores abordados

pela literatura tiveram seu suporte descontinuado, de modo que o c´odigo fonte fica limitado `a vers˜oes espec´ıficas de sistemas operacionais Por exemplo, o PowerScope ´e limitado `a sistemas Linux 2.2 (FLINN; SA- TYANARAYANAN, 1999b). Como alternativa, as ferramentas comerciais s˜ao poss´ıveis solu¸c˜oes para minimizar tais dificuldades.

3.3 CONSIDERA ¸C ˜OES

Para tratar a caracteriza¸c˜ao do consumo de energia em SCFs, buscou-se descrever, de forma resumida, as abordagens voltadas para a eficiˆencia energ´etica poss´ıveis de serem adotadas durante o projeto dos sistemas computacionais integrantes de SCFs.

De modo mais espec´ıfico, a proposta desta pesquisa se caracteriza como uma abordagem sens´ıvel ao consumo de energia el´etrica, pois est´a voltada para a preserva¸c˜ao da capacidade da fonte de energia. Em tais situa¸c˜oes, podem ser adotados esquemas que combinam elementos das abordagens anteriores e/ou elaboram-se alternativas para balancear o consumo da instala¸c˜ao, de forma a adaptar a opera¸c˜ao do sistema em fun¸c˜ao das caracter´ısticas do ambiente.

Apresentou-se ainda, as metodologias usadas para a avalia¸c˜ao do consumo do processamento dos programas computacionais. Estabele- ceu-se essa discuss˜ao objetivando evidenciar a complexidade que en- volve o assunto. Procurou-se mostrar que os procedimentos para a medida do consumo s˜ao limitados, principalmente, `a arquitetura do

hardware em que o software ´e executado, independentemente se a t´ecnica ´e a medi¸c˜ao direta ou a simula¸c˜ao.

Quanto aos simuladores, os que re´unem os requisitos desej´aveis, s˜ao ferramentas comerciais cujas licen¸cas geram custos. Quanto aos de dom´ınio p´ublico s˜ao limitados a um conjunto reduzido de arquiteturas de processadores ou seus c´odigos desatualizados.

Esse conjunto de fatores imp˜oe uma s´erie de restri¸c˜oes, tornando complexa a tarefa de avaliar o consumo energ´etico resultante do pro- cessamento de programas computacionais, mesmo em granularidades menos finas. Dessa forma, a op¸c˜ao que oferece maior proximidade com a realidade ´e a utiliza¸c˜ao das informa¸c˜oes disponibilizadas atrav´es de “benchmarks”, os quais foram introduzidos no cap´ıtulo anterior (se¸c˜ao