原则:碳意识

已完成

视频中的内容仍然有效,但由于绿色软件基金会的主体重新编号,主体编号可能会有所不同。

碳意识

并非所有电力都以相同的方式产生。 在不同的地方和不同的时间,利用不同的能源发电,其碳排放也不尽相同。 有些能源,如风能、太阳能或水力发电,是清洁的可再生能源,不排放碳。 其他化石燃料能源在发电时会排放不同数量的碳。 例如,燃烧天然气的发电厂比燃烧煤炭的发电厂排放的碳更少。

碳强度

电力的碳强度用于衡量每消耗一千瓦时电力所产生的碳 (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 CO₂ figure on a piece of computation(某项计算的 CO2 图)之类的研究表明,这些做法可使碳减排量高达 45% 到 99%,具体取决于为电网供电的可再生能源数量。

全方位审视你的应用程序,找出灵活运行工作负荷的机会,并使用电的碳强度来指示何时或是否运行这些工作负荷。

Illustration showing carbon intensity over time.

计算碳强度

许多服务允许你获取不同电网当前碳强度的实时数据。 有些提供未来碳强度的估计值;有些提供边际碳强度。

  • 碳强度 API:英国碳强度数据的免费资源

  • ElectricityMap:针对非商业性和单一国家/地区使用,提供免费解决方案;针对商业性和多个国家/地区使用,提供高级解决方案。

  • WattTime:针对单电网地区提供免费解决方案,针对多电网地区提供高级解决方案,并提供实时边际排放量。

需求转移是一种将计算操作转移到碳强度较低的地区或时间的策略,换种说法就是,可再生电力供应较多的地区或时间。

需求调整也是一种类似的策略,但我们不是将需求转移到不同的地区或时间,而是将需求调整为与现有的供应相匹配。

Diagram of resource supply and demands over time.

如果可再生能源的供应量较高,则增加需求(在应用程序中执行更多的操作);如果供应量较低,则减少需求(在应用程序中执行更少的操作)。

  • 视频会议软件是此概念的一个很好的例子。 它们不是在任何时候都以尽可能高的质量进行流式传输,而是经常以降低视频质量、优先考虑音频的方式来调整需求。

  • 另一个例子是 TCP/IP。 传输速度会随着网络上广播的数据量的增加而上升。

  • 第三个例子是网络的渐进式增强。 网络体验的改善取决于最终用户设备上可用的资源和带宽。

碳感知与碳效率

对最终用户而言,碳效率可能是透明的。 你可以在各个层面更高效地将碳转化为有用的功能,同时保持用户体验不变。

但在某些时候,透明地提高碳效率是不够的。 如果现在运行某个应用程序的碳成本太高,我们可以改变用户体验,进一步减少碳排放。 如果用户意识到应用程序的运行方式发生了变化,它就变成了一个碳感知型应用程序。

对碳感知型应用程序进行需求调整就是为了匹配碳供应。 当运行应用程序的碳成本变得很高时,应调整需求以匹配碳供应。 这可以自动发生,也可以由用户选择。

需求调整与可持续发展中一个更广泛的概念有关,那就是减少消耗。 我们可以通过提高资源使用效率来实现很多目标,但在某些时候,我们还需要减少消耗。 作为可持续软件工程师,实现碳效率可能意味着当碳强度很高时,我们不需要对计算进行需求转移,而是考虑取消计算,从而减少应用程序的需求并降低最终用户的期望。

环保模式

环保模式在生活中随处可见:例如,汽车或洗衣机。 开启后,其性能会发生变化,因为它们在执行相同任务时消耗的资源(汽油/电)更少。 这是有代价的(否则,我们会一直选择环保模式),所以我们要进行权衡。 因为要进行权衡,所以环保模式几乎都是以可选的方式呈现给用户,由用户决定是否使用该模式并接受妥协。

软件应用程序也可以有环保模式,选择该模式时,它可能以两种方式改变应用程序的行为:

  • 智能:向用户提供信息,使他们能够做出明智的决定。

  • 自动:应用程序自动做出更积极的决定,以减少碳排放。