Principio: Efficienza energetica

Completato

Il contenuto del video è ancora valido, ma i numeri dei principi possono differire a causa della rinumerazione dei principi della Green Software Foundation.

Elettricità e carbonio

La maggior parte delle persone pensa che l'elettricità sia pulita. Quando si collega un dispositivo a una presa di corrente, non ci si sporca le mani e i portatili non hanno bisogno di tubi di scarico. In realtà, la maggior parte dell'energia elettrica viene prodotta usando combustibili fossili, per lo più carbone, e la fornitura di energia è la principale fonte delle emissioni di carbonio.

Poiché le emissioni di carbonio sono direttamente collegate alla produzione di energia elettrica, quest'ultima può essere considerata uno dei fattori responsabili di tali emissioni.

Dalle applicazioni in esecuzione sullo smartphone al training dei modelli di Machine Learning in esecuzione nei data center, qualsiasi tipo di software consuma energia elettrica durante l'esecuzione. Uno dei modi migliori per ridurre il consumo di energia elettrica e le conseguenti emissioni di carbonio dovute al software è quello di rendere le applicazioni più efficienti in termini di consumo energetico.

Ecco perché un principio chiave dell'ingegneria del software sostenibile prevede la creazione di applicazioni efficienti in termini di consumo energetico.

Gli ingegneri del software sostenibile devono conoscere la natura dell'energia elettrica. Tutto ha origine non con i computer, ma da come viene prodotta l'energia elettrica che alimenta i computer.

Energia e potenza

L'energia misura la quantità di elettricità usata. L'unità di misura standard dell'energia è il joule (J), ma per indicare il consumo di energia, si usano comunemente anche i chilowattora (kWh).

L'elettricità viene spesso indicata come potenza o energia, che sono però due concetti diversi:

Energia = Potenza ✕ Tempo

  • L'energia è la quantità totale di elettricità usata. L'unità di misura standard per l'energia è il joule (J).

  • La potenza è il tasso di elettricità utilizzata per ogni unità di tempo. L'unità di misura standard dell'energia è il watt (W). Un watt è pari a 1 joule al secondo.

In genere, per fare riferimento al consumo di energia, si parla di potenza per unità di tempo, ad esempio watt al secondo o chilowattora. Ad esempio:

  • 20 watt al secondo o 20 Ws indica la quantità di energia che si otterrebbe se fossero usati 20 W per un secondo. Poiché 1 watt equivale a 1 joule al secondo, questo valore è pari a 20 joule.

  • 20 chilowattora o 20 kWh indica l'energia che si otterrebbe se fossero utilizzati 20.000 watt per un'ora.

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

Proporzionalità dell'energia

L'utilizzo misura la quantità di risorse in uso di un computer, in genere espressa come percentuale. Un computer inattivo ha una bassa percentuale di utilizzo e non viene utilizzato. Un computer che funziona al massimo della sua capacità ha una percentuale elevata e viene utilizzato al massimo.

La proporzionalità dell'energia è una misura che esprime la relazione tra la potenza utilizzata in un sistema informatico e la velocità con cui viene eseguito un lavoro utile (utilizzo). Se il consumo complessivo di potenza è proporzionale all'utilizzo del computer, è proporzionale in termini di energia.

In un sistema proporzionale in termini di energia, l'efficienza energetica è una costante, vale a dire che, a prescindere dall'utilizzo, l'efficienza energetica rimane invariata. L'efficienza energetica dell'hardware, tuttavia, non è costante. ma varia in base al contesto. A causa delle complesse interazioni tra i numerosi diversi componenti di un dispositivo hardware, può essere non lineare, ovvero la relazione tra potenza e utilizzo non è proporzionale.

Diagram showing power versus utilization.

Allo 0% di utilizzo il computer consuma comunque 100 W, al 50% di utilizzo consuma 180 W e al 100% di utilizzo consuma 200 W. La relazione tra consumo di potenza e utilizzo non è lineare e non supera il valore originale.

A causa di questa relazione, quanto più un computer viene utilizzato, tanto più sarà efficiente nel convertire l'elettricità in operazioni di calcolo utili. Eseguire il lavoro sul minor numero possibile di server con il più alto tasso di utilizzo ne ottimizza l'efficienza energetica.

Consumo di potenza statica

Esistono varie ragioni per questa mancanza di proporzionalità dell'energia e una di queste è il consumo di potenza statica.

Un computer inattivo, anche uno allo 0% di utilizzo, consuma comunque elettricità. Questa potenza statica varia in base alla configurazione e ai componenti hardware, ma tutti i componenti consumano una certa quantità di potenza statica. Questo consumo di potenza statica è uno dei motivi per cui in PC, portatili e dispositivi mobili sono disponibili modalità di risparmio energia. Se il dispositivo è inattivo, a un certo punto viene attivata una modalità di ibernazione e il disco e lo schermo vanno in sospensione o viene addirittura modificata la frequenza della CPU. Queste modalità di risparmio energia, pur rispondendo allo scopo, presentano alcuni svantaggi, come il riavvio più lento quando il dispositivo viene riattivato.

I server in genere non sono configurati per nessun tipo di risparmio energetico. Molti casi d'uso dei server richiedono la piena capacità il più velocemente possibile in risposta alle rapide variazioni della domanda. In questo scenario molti server possono restare inattivi durante i periodi di scarsa domanda. Un server inattivo ha un costo derivante sia dal carbonio incorporato che dall'utilizzo inefficiente.

Velocità di clock

La velocità di clock (frequenza) è la velocità operativa di un computer o del microprocessore, espressa in cicli al secondo (megahertz). I dispositivi consumer spesso regolano dinamicamente la velocità di clock dei dispositivi di elaborazione per ottenere una maggiore proporzionalità dell'energia.

La velocità di clock indica la velocità con cui un computer può eseguire le istruzioni.

L'efficienza energetica dei microprocessori varia a seconda della velocità di clock. Le velocità di clock elevate sono spesso meno efficienti in termini di consumo energetico rispetto alle velocità di clock basse. Ad esempio, nel sistema I7-3770K è possibile eseguire a 3.5 GHz per 50 W o a 5 GHz per 175 W. Un aumento approssimativo del 40% della velocità di clock richiede un aumento di potenza pari a >3x.

La riduzione della velocità di clock nei periodi di basso utilizzo può aumentare l'efficienza energetica, ottimizzando così l'efficienza energetica dell'hardware.