準則:碳感知

已完成

影片中的內容仍然有效,但由於綠色軟體基金會的準則重新編號,因此準則編號可能會有所不同。

碳感知

並非所有電力都以相同的方式產生。 在不同的位置及時間,電力是使用不同碳排放量的各種來源所產生。 有些來源 (例如風力、太陽能或水力發電) 是不會排放碳的乾淨再生來源。 其他化石燃料來源則會排放不同的碳含量來產生電力。 例如,燃燒天然氣的發電廠碳排放量會比燃燒煤的發電廠少。

碳濃度

電力的碳濃度是一種量值,用於測量每千瓦小時電力使用所產生的碳 (CO₂eq) 排放量。

碳濃度的標準單位是 gCO₂eq/kWh,或每千瓦小時的碳公克數。

若您的電腦插頭直接插入水力發電廠,則其消耗的電力會產生 zero gCO₂eq/kWh 的碳濃度。 水力發電廠產生電力時不會排放碳。 但大部分的人都無法直接插入水力發電廠。 相反地,他們會插入供應電力來自綜合來源的電網中,而這些來源產生的碳含量不同。 因此,當插入電網時,您的碳濃度通常會大於零。

碳濃度的變化

碳濃度會依位置而有所不同,因為某些區域相較於其他區域,其能源組合包含較乾淨的能源。

因為再生能源多變,所以碳濃度也會隨著時間改變。 例如,在陰天或無風時,因為組合中的電力多來自排放碳的來源,所以碳濃度會增加。

Illustration showing carbon intensity in renewable energy versus fossil fuels.

一天當中不同時間的電力需求量不同,供應量必須能夠滿足需求量。 其中有些供應系統可以輕鬆地控制其產生的電源;例如,煤發電廠可以燃燒較少的煤。 而有些供應系統則無法輕鬆地控制其產生的電力;例如,風力發電廠無法控制風量,只能捨棄 (減少) 基本上免費產生的電力。

Illustration showing reduced energy demands.

一般而言,隨著電力需求降低,能源市場運作方式的副產品就是高排放的化石燃料電力來源會先減少,最後才減少再生來源。

減少應用程式所消耗的電量,就可以減少當地電網能源組合的碳濃度。

邊際碳濃度

一般而言,臨界電廠是一種系統,可快速回應電力需求的變化,例如燃氣輪機。

若您消耗更多能源,能源會來自邊際發電廠。 不過,它不能是風力發電機或太陽能板,因為您無法命令它們產生更多電力。

該發電廠可以控制其輸出的能源。 再生能源發電廠無法控制太陽或風,所以邊際發電廠通常是由化石燃料提供電力。

邊際發電廠會排放碳,無論何時我們都會有電網中能源組合的碳濃度,也會有必須上線以符合新需求的能源的碳濃度。 這稱為「邊際碳濃度」。

化石燃料發電廠很少會減到零,其具有最低運作閾值。 有些則完全不會進行調整,視為持續的全天候基礎負載。 因此,有時可能會發生不合理的狀況,也就是我們會捨棄 (減少) 免費產生的再生能源,而去消耗化石燃料發電廠花錢用燃料產生的能源。

Illustration showing free renewable energy.

若能以原本可能減少的再生來源供應來滿足新的負荷,則邊際碳濃度會是 zero gCO₂eq/kWh

有些時候,電力的邊際碳濃度可能為 zero gCO₂eq/kWh。 在這些時間執行計算會導致消耗電力未產生任何碳排放

需求轉移

目前很少在電網系統中儲存或緩衝電力的方式。 通常都會產生電力,以便供應可以隨時符合需求。 若從再生能源產生的能源多於支援需求所需的能源,而且所有儲存選項都滿了,我們就會減少 (捨棄) 該乾淨能源。 一個解決方案是將工作負載轉移至供應更多再生能源的時間與地區,這個概念稱為「需求轉移」。

若您可以彈性選擇執行工作負載的時間與位置,則可以選擇在碳濃度較低時消耗電力,並在碳濃度較高時暫停。 例如,在碳濃度低很多的不同時間或地區,將機器學習模型定型。

這類研究如 Putting a CO2 figure on a piece of computation (計算 CO2 數字) 顯示,這些動作最多可降低 45% 到 99% 的碳排放量,視供應電網的再生能源數目而定。

仔細看看您的應用程式,找出在工作負載方面可能彈性選擇的機會,並使用電力的碳濃度來作為何時或是否執行這些工作負載的訊號。

Illustration showing carbon intensity over time.

計算碳濃度

數個服務都可讓您取得不同電網目前碳濃度的相關即時資料。 有些會提供日後碳濃度的估計值,有些則會提供邊際碳濃度。

  • Carbon Intensity API (碳濃度 API):英國內碳濃度資料的免費資源

  • ElectricityMap:費解決方案提供給非商業用途的單一國家/地區使用,進階解決方案則提供商業用途與多國家/地區使用

  • WattTime:在單一電網區域中免費提供,還有適合多電網及即時邊際排放的進階解決方案

需求轉移策略是將計算移至碳濃度較低的區域或時間點,換句話說,是計算可再生電力供應較高的區域或時間。

需求調節是一種類似的策略,但我們不會將需求移至不同的區域或時間,而是調節我們的需求來配合現有供應。

Diagram of resource supply and demands over time.

如果可再生能源供應很高,請增加需求 (在應用程式中執行更多作業);如果供應較低,則減少需求 (在應用程式中執行更少作業)。

  • 這個概念的絕佳範例是視訊會議軟體。 這些軟體不會一直以可能的最高品質串流,而通常是藉由降低視訊品質以優先處理音訊來調節需求。

  • 另一個範例是 TCP/IP。 傳輸速度會回應透過連線廣播的資料量而提高。

  • 第三個範例是網路的漸進式加強。 網路體驗會根據終端使用者裝置上可用的資源和頻寬而改善。

碳感知與碳排放效率的比較

對於終端使用者而言,碳排放效率可能是透明的。 您可在每一個層級上更有效率地將碳轉換為有用的功能,同時仍然讓使用者體驗保持不變。

但在某些時候,光是以透明方式提高碳效率還不夠。 如果現在執行應用程式的碳成本過高,則可變更使用者體驗,以進一步降低碳排放量。 當使用者意識到應用程式以不同方式執行時,該應用程式就會成為碳感知應用程式。

針對碳感知應用程式進行需求調節都與碳供應有關。 當執行應用程式的碳成本變得很高時,請調節需求來配合碳供應。 這可能會自動發生,或使用者可進行選擇。

需求調節與永續性的更廣泛概念有關,也就是減少耗用量。 我們可透過更有效率地使用資源來逹成許多目標,但在某些時候,我們只需要消耗較少的資源。 身為永續型軟體工程師,符合碳效率表示當碳濃度很高,而不是要計算需求轉移時,我們會考慮取消,藉此降低應用程式的需求與終端使用者的期待。

節能模式

在生活中經常會使用節能模式:例如,在汽車或洗衣機中。 開啟時,效能會隨著其耗用較少資源 (天然氣/電力) 來執行相同工作而變更。 這並不是不需要付出成本 (否則,我們將會一律選擇節能模式),因此需要進行取捨。 因為這是一項取捨,所以幾乎一律會將節能模式當作選項呈現給使用者,使用者可決定是否要採用該模式並接受折衷方案。

軟體應用程式也可以有節能模式,當啟用該模式時,可能會以兩種方式變更應用程式行為:

  • 情報:提供資訊給使用者,使其能做出明智的決策。

  • 自動:應用程式會自動做出更積極的決策,以降低碳排放量。