Princip: Energieffektivitet

Slutförd

Videons innehåll är fortfarande giltigt, men principnumren kan skilja sig åt på grund av green software foundations principomnumrering.

Elektricitet och koldioxid

De flesta tycker att elen är ren. När vi kopplar in något i en vägg blir våra händer inte smutsiga, och våra bärbara datorer behöver inte avgasrör. Sanningen är dock att den största delen av elen produceras genom förbränning av fossila bränslen (vanligtvis kol) och energiförsörjning är den enskilt viktigaste orsaken till koldioxidutsläpp.

Eftersom vi kan dra en direkt linje från el till koldioxidutsläpp kan vi betrakta el som en av proxyservrarna för koldioxid.

Från program som körs på din smartphone till att träna maskininlärningsmodeller som körs i datacenter, all programvara förbrukar el i sin körning. Ett av de bästa sätten att minska elförbrukningen och programvarans efterföljande koldioxidutsläpp är att göra våra program mer energieffektiva.

Den här kunskapen är anledningen till att en viktig princip för hållbar programvaruutveckling är att skapa program som är energieffektiva.

Som hållbara ingenjörer måste vi förstå elen. Vår resa börjar inte med datorn; det börjar med hur den el som driver våra datorer görs.

Skillnaden mellan energi och effekt

Energi mäter mängden el som används. standardenheten för Energi är Joules eller J. Kilowattimmar eller kWh är dock ett annat vanligt sätt att referera till energiförbrukning.

Elektricitet rapporteras ofta som antingen effekt eller energi, som är två olika begrepp:

Energi = Ström ✕ Tid

  • Energi är den totala mängden el som används. standardenheten för Energi är Joules eller J.

  • Ström är den elhastighet som förbrukas per tidsenhet. Standardenheten för Power är Watt eller W. En enda Watt är 1 Joule per sekund.

Ett vanligt sätt att referera till energiförbrukning är effekt per tidsenhet, till exempel wattsekunder eller kilowattimmar. Till exempel:

  • 20 Watt-sekunder eller 20 Ws är mängden energi du skulle få om 20 W kördes i en sekund. Eftersom 1 watt är 1 Joule per sekund är det här värdet 20 Joule.

  • 20 kilowattimmar eller 20 kWh är den energi du skulle få om 20 000 watt kördes i en timme.

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

Energiproportionalitet

Användning mäter hur mycket av en dators resurser som används, vilket vanligtvis representeras i procent. En inaktiv dator har en låg användningsprocent och används inte. En dator som körs med sin maximala kapacitet har en hög procentandel och används fullt ut.

Energiproportionalitet är ett mått på förhållandet mellan den förbrukade effekten i ett datorsystem och användningsgraden. Om den totala energiförbrukningen är proportionell mot datorns användning är den energiproportansuell.

I ett energiproportivt system är energieffektiviteten konstant. oavsett användning förblir energieffektiviteten densamma. Maskinvarans energieffektivitet är dock inte konstant. Den varierar beroende på kontext. På grund av komplexa interaktioner mellan många olika maskinvarukomponenter kan det vara icke-linjärt, vilket innebär att relationen mellan energi och användning inte är proportionell.

Diagram som visar effekt jämfört med användning.

Vid 0 % användning drar 100 Wdatorn fortfarande . Vid 50 % användning drar 180 Wden , och vid 100 % användning drar 200 Wden . Relationen mellan energiförbrukning och användning är inte linjär och den korsar inte ursprunget.

Det här förhållandet gör att ju mer du använder en dator, desto mer effektiv blir den när det gäller att omvandla el till användbara beräkningsåtgärder. Genom att köra ditt arbete på så få servrar som möjligt med högsta användningsgrad kan du maximera servrarnas energieffektivitet.

Statisk effektförbrukning

Det finns olika orsaker till denna brist på energiproportionalitet, varav en är statisk strömdragning.

En inaktiv dator, även vid noll procents användning, drar fortfarande el. Den statiska effektförbrukningen varierar mellan olika konfigurationer och maskinvarukomponenter, men alla komponenter har statisk effektförbrukning. Den här potentiella effektförbrukningen är en av orsakerna till varför stationära datorer, bärbara datorer och mobiltelefoner har energisparlägen. Om enheten är inaktiv utlöser den till slut ett viloläge, vilket försätter disken och skärmen i viloläge, eller till och med ändrar CPU-frekvensen. Dessa energisparlägen sparar på el men har andra kompromisser, till exempel en långsammare omstart när enheten vaknar.

Servrar är vanligtvis inte konfigurerade för aggressiva eller ens minimala energisparande. Många serveranvändningsfall kräver full kapacitet så snabbt som möjligt som svar på snabbt föränderliga krav. Det här scenariot kan lämna många servrar i inaktivt läge under perioder med låg efterfrågan. En inaktiv server har en kostnad både från inbäddad koldioxid och ineffektiv användning.

Klockhastighet

Klockhastighet (eller klockfrekvens) är drifthastigheten för en dator eller dess mikroprocessor, uttryckt i cykler per sekund (megahertz). Konsumentenheter justerar ofta dynamiskt klockhastigheten för beräkningsenheter för att uppnå mer energiproportionalitet.

Klockhastigheten anger hur snabbt en dator kan köra instruktioner.

Energieffektiviteten hos mikroprocessorer ändras med klockhastighet; höga klockhastigheter är ofta mindre energieffektiva än låga klockhastigheter. I I7-3770K-systemet kan du till exempel köra på 3.5 GHz för 50 W, eller ungefär 5 GHz för 175 W. En ungefärlig ökning på 40 % av klockhastigheten kräver >3✕ effektökning.

Att minska klockhastigheten vid tider med låg användning kan öka energieffektiviteten, vilket maximerar maskinvarans energieffektivitet.