Princípio: eficiência energética

Concluído

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

Eletricidade e carbono

A maioria das pessoas acha que a eletricidade é limpa. Quando conectamos algo a uma tomada, nossas mãos não ficam sujas e nossos laptops não precisam de tubos de exaustão. No entanto, a verdade é que a maior parte da eletricidade é produzida através da queima de combustível fóssil (geralmente carvão) e o fornecimento de energia é a única causa mais significativa de emissão de carbono.

É possível separar a eletricidade e as emissões de carbono, por isso podemos considerar a eletricidade como um dos indicadores de carbono.

Desde os aplicativos em execução no seu smartphone até o treinamento de modelos de machine learning em execução em data centers, todo software consome eletricidade quando está sendo executado. Uma das melhores maneiras de reduzir o consumo de eletricidade e as subsequentes emissões de poluição por carbono de nosso software é tornar nossos aplicativos mais eficientes em termos de energia.

Esse conhecimento é o motivo pelo qual um princípio fundamental da Engenharia de Software Sustentável é criar aplicativos que sejam eficientes em termos de energia.

Como engenheiros sustentáveis, precisamos entender a eletricidade. Nosso percurso não começa no computador, ele começa em como a eletricidade que ativa nossos computadores é gerada.

Energia versus potência

A energia mede a quantidade de eletricidade usada. A unidade padrão de energia é joules ou J. No entanto, outra maneira comum de se referir ao consumo de energia é em quilowatt-hora ou kWh.

A eletricidade é geralmente denominada Potência ou Energia, que são dois conceitos diferentes:

Energia = Energia ✕ Hora

  • Energia é a quantidade total de eletricidade usada. A unidade padrão de energia é joules ou J.

  • Potência é a taxa de eletricidade consumida por unidade de tempo e a unidade padrão de potência é watt ou W. Um watt é 1 joule por segundo.

Uma forma comum de se referir ao consumo de energia é Potência sobre uma unidade de Tempo, como watts/segundo ou quilowatts-hora. Por exemplo:

  • 20 watt-segundos ou 20 Ws é a quantidade de energia que você obteria se 20 W fossem executados por um segundo. Como 1 watt é o mesmo que 1 joule por segundo, esse valor é de 20 joules.

  • 20 quilowatts-hora ou 20 kWh é a energia que você obteria se 20.000 watts fossem executados por uma hora.

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

Proporcionalidade de energia

A utilização mede a quantidade de recursos usados de um computador e ela normalmente é representada como um percentual. Um computador ocioso tem um percentual de utilização baixo e não está sendo utilizado. Um computador em capacidade máxima de execução tem um percentual alto e está sendo totalmente utilizado.

A proporcionalidade energética é uma medida da relação entre a energia consumida em um sistema de computador e a taxa na qual o trabalho útil é feito (sua utilização). Se o consumo de energia geral for proporcional à utilização do computador, ele será proporcional à energia.

Em um sistema proporcional de 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. Ela 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. Isso significa que a relação entre poder e utilização não é proporcional.

Diagrama mostrando potência versus utilização.

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

Por causa dessa relação, quanto mais você utiliza um computador, mais eficiente ele se torna na conversão de eletricidade em operações de computação úteis. Executar seu trabalho no menor número de servidores possível com a maior taxa de utilização maximiza a eficiência energética deles.

Consumo de energia estática

Há várias razões para essa falta de proporcionalidade de energia. Uma delas é o consumo de energia estática.

Um computador ocioso, mesmo com 0% de utilização, ainda consome eletricidade. Esse consumo de energia estática varia por configuração e componentes de hardware, mas todos os componentes consomem um pouco de energia estática. Esse consumo de energia potencial é um dos motivos pelos quais computadores, laptops e dispositivos móveis têm modos de economia de energia. Se o dispositivo estiver ocioso, ele eventualmente disparará um modo de hibernação. Isso coloca o disco e a tela em suspensão ou até mesmo altera a frequência da CPU. Esses modos de economia de energia poupam a 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 obter uma economia de energia agressiva ou até mesmo mínima. Muitos casos de uso do servidor exigem capacidade total o mais rápido possível em resposta a demandas que mudam rapidamente. Esse cenário pode deixar muitos servidores em modos ociosos durante períodos de baixa demanda. Um servidor ocioso tem um custo pelo carbono incorporado e pela utilização ineficiente dele.

Velocidade de clock

Velocidade de clock (frequência) é a velocidade operacional de um computador ou do microprocessador dele, expressa em ciclos por segundo (mega-hertz). Os dispositivos de consumo geralmente ajustam dinamicamente a velocidade do relógio dos dispositivos de computação para obter mais proporcionalidade energética.

A velocidade de clock indica a rapidez com que um computador pode executar instruções.

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

Reduzir a velocidade de clock em momentos de baixa utilização pode aumentar a eficiência energética e maximizar a eficiência energética do hardware.