Princípio: Eficiência energética

Concluído

O conteúdo deste vídeo ainda é válido, mas os números principais podem diferir devido à renumeração de princípio da Green Software Foundation.

Eletricidade e carbono

A maioria das pessoas pensa que a eletricidade é limpa. Quando ligamos algo a uma parede, as nossas mãos não ficam sujas e os nossos portáteis não precisam de tubos de escape. No entanto, a verdade é que a maior parte da eletricidade é produzida através da queima de combustíveis fósseis (geralmente carvão) e o fornecimento de energia é a causa mais significativa da emissão de carbono.

Como podemos traçar uma linha direta entre a eletricidade e as emissões de carbono, podemos considerar a eletricidade como um dos substitutos para o carbono.

Desde as aplicações em execução no seu smartphone até ao treino de modelos de aprendizagem automática em execução em centros de dados, todo o software consome eletricidade na sua execução. Uma das melhores maneiras de reduzir o consumo de eletricidade e as subsequentes emissões de poluição de carbono do nosso software é tornar as nossas aplicações mais eficientes em termos energéticos.

Este conhecimento é por isso que um princípio chave da Engenharia de Software Sustentável é construir aplicações que sejam energeticamente eficientes.

Como engenheiros sustentáveis, precisamos entender a eletricidade. A nossa viagem não começa com o computador; Começa com a forma como é feita a eletricidade que alimenta os nossos computadores.

Energia vs. potência

A energia mede a quantidade de eletricidade utilizada; a unidade padrão para Energia é Joules ou J. No entanto, quilowatts-hora ou kWh é outra forma comum de se referir ao consumo de energia.

A eletricidade é normalmente comunicada como Potência ou Energia, que são dois conceitos diferentes:

Energia = Potência ✕ Tempo

  • Energia é a quantidade total de eletricidade utilizada; a unidade padrão para Energia é Joules ou J.

  • Potência é a taxa de eletricidade consumida por unidade de tempo; a unidade padrão de potência é Watt ou W. Um único watt é de 1 Joule por segundo.

Uma forma comum de nos referirmos ao consumo de energia é Potência sobre uma unidade de Tempo, como Watt-segundos ou Quilowatts-horas. Por exemplo:

  • 20 Watt-segundos ou 20 Ws é a quantidade de energia que você obteria se 20 W fosse executado por um segundo. Como 1 Watt é 1 Joule por segundo, este valor é de 20 Joules.

  • 20 Kilowatt-hora ou 20 kWh é a energia que você obteria se 20.000 Watts funcionassem por uma hora.

    Energy = 60 X 60 X 20,000 = 72,000,000 Joules = 72 Megajoules (72 MJ)

Proporcionalidade energética

A utilização mede a quantidade de recursos de um computador que está sendo usada, que normalmente é representada como uma porcentagem. Um computador ocioso tem uma baixa porcentagem de utilização e não está sendo utilizado. Um computador rodando em sua capacidade máxima tem uma alta porcentagem e está sendo totalmente utilizado.

A Proporcionalidade de energia é uma medida da relação entre a energia consumida num sistema de computador e a taxa em que o trabalho útil é realizado (a respetiva utilização). Se o consumo total de energia é proporcional à utilização do computador, então é proporcional à energia.

Num sistema proporcional à energia, a eficiência energética é uma constante; independentemente da utilização, a eficiência energética permanece a mesma. No entanto, a eficiência energética do hardware não é constante. Varia de acordo com o contexto. Devido às interações complexas de muitos componentes diferentes do dispositivo de hardware, ele pode ser não linear, o que significa que a relação entre potência e utilização não é proporcional.

Diagrama mostrando potência versus utilização.

A 0% de utilização, o computador ainda desenha 100 W, a 50% de utilização, desenha 180 W, e a 100% de utilização, desenha 200 W. A relação entre consumo de energia e utilização não é linear e não cruza a origem.

Devido a esta relação, quanto mais utilizar um computador, mais eficiente será a conversão de eletricidade em operações de computação úteis. Executar o seu trabalho no mínimo de servidores possível com a taxa de utilização mais elevada maximiza a eficiência de energia.

Consumo de energia estático

Existem várias razões para esta falta de proporcionalidade energética, uma das quais é o consumo de energia estática.

Um computador ocioso, mesmo com zero por cento de utilização, ainda consome eletricidade. Este consumo de energia estático varia de acordo com a configuração e os componentes de hardware, mas todos os componentes têm algum consumo de energia estático. Este consumo de energia potencial é um dos motivos pelos quais os PCs, os computadores portáteis e os dispositivos móveis têm modos de poupança de energia disponíveis. Se o dispositivo estiver ocioso, ele eventualmente aciona um modo de hibernação, que coloca o disco e a tela em suspensão, ou até mesmo altera a frequência da CPU. Esses modos de economia de energia economizam eletricidade, mas têm outras compensações, como uma reinicialização mais lenta quando o dispositivo é ativado.

Normalmente, os servidores não são configurados para economia de energia agressiva ou mesmo mínima. Muitos casos de uso de servidor exigem capacidade total o mais rápido possível em resposta a demandas em rápida mudança. Esse cenário pode deixar muitos servidores no modo ocioso durante períodos de baixa demanda. Um servidor inativo tem um custo de carbono incorporado e a respetiva utilização ineficiente.

Velocidade do relógio

A velocidade do relógio (frequência) é a velocidade operacional de um computador ou do respetivo microprocessador, expresso em ciclos por segundo (megahertz). Os dispositivos de consumo geralmente ajustam dinamicamente a velocidade do relógio dos dispositivos de computação para alcançar mais proporcionalidade energética.

A velocidade do relógio indica a rapidez com que um computador pode executar instruções.

A eficiência energética dos microprocessadores muda com a velocidade do clock; As velocidades de relógio elevadas são frequentemente menos eficientes do ponto de vista energético do que as velocidades de relógio baixas. Por exemplo, no sistema I7-3770K, você pode executar em 3.5 GHz para 50 W, ou cerca 5 GHz de para 175 W. Um aumento aproximado de 40% na velocidade do relógio requer >um aumento de potência de 3✕ .

Reduzir a velocidade do relógio em momentos de baixa utilização pode aumentar a eficiência energética, maximizando assim a eficiência energética do hardware.