什么是绿色软件以及我们为什么需要它?

软件可能是 吃掉世界,但它也在加热它。

2023 年 12 月,来自近 200 个国家的代表齐聚迪拜,参加联合国气候变化会议 COP28,讨论降低排放的迫切需要。 同时,
COP28 网站 产生的 3.69克二氧化碳 (一氧化碳2)根据网站可持续性评分工具,每页加载量 生态平地机。 这似乎是一个很小的数字,但如果该网站在一年内每月获得 10,000 次浏览,其排放量将略高于从旧金山到多伦多的单程航班的排放量。

这并非不可避免。 根据 Ecograder 的分析,未使用的代码、尺寸不当的图像和第三方脚本等都会影响 COP28 网站的排放量。 这些都会影响数据传输、加载和处理所用的能源,从而消耗用户设备的大量电量。 Ecograder 指出,修复和优化这些问题可以使网站每页负载的排放量减少高达 93%。

虽然软件本身不会释放任何排放,但它在数据中心的硬件上运行,并通过传输网络引导数据,这约占
与能源相关的温室气体排放量的 1% 每个。 信息和通信技术部门作为一个整体负责估计 占全球的 2% 到 4% 温室气体排放。 到 2040 年,这个数字可能会达到 14%——几乎与排放的碳一样多 空运、陆运和海运 合并。

在软件领域, 人工智能 有其自身的可持续性问题。 人工智能公司
抱脸 估算了 BLOOM 大语言模型的碳足迹 涵盖从设备制造到部署的整个生命周期。 该公司发现BLOOM的最终训练排放了50吨二氧化碳2——相当于从纽约飞往悉尼的大约十几趟航班。

绿色软件工程是一门新兴学科,包含构建减少碳排放的应用程序的最佳实践。 绿色软件运动正在迅速发展。 公司喜欢
销售队伍 推出了自己的 软件可持续性举措,而 绿色软件基金会 目前拥有 64 个成员组织,其中包括科技巨头 谷歌, 英特尔, 和 微软。 但如果要防止开发和使用软件导致排放恶化,该行业就必须更广泛地采用这些做法。

什么是绿色软件工程?

绿色软件之路始于十多年前。 这
可持续网页设计社区小组万维网联盟 W3C(W3C)成立于 2013 年, 绿色网络基金会 始于 2006 年,旨在了解为互联网提供动力的各种能源。 现在,绿色网络基金会正在努力实现到 2030 年实现无化石互联网的宏伟目标。

“软件开发生态系统中已经有很大一部分人关心这个领域——他们只是不知道该怎么做,”说 阿西姆·侯赛因绿色软件基金会主席兼执行董事,前绿色软件和生态系统总监 英特尔

侯赛因认为,该做什么属于 三大支柱:能源效率,或使用更少的能源; 硬件效率,或使用更少的物理资源; 以及碳感知计算,或者更智能地使用能源。 Hussain 补充道,碳感知计算就是在电力来自清洁或低碳来源期间(例如风能和太阳能可用时)对应用程序执行更多操作,而在无法使用时执行更少操作。

可持续软件的案例

那么为什么程序员应该关心他们的软件的可持续性呢? 其一,绿色软件是高效的软件,可以让程序员开发出更快、更高质量的系统。 卡斯帕·金西维尔,软件开发公司的团队领导和可持续软件策略师 在珠子里

这些高效的系统还可能意味着公司的成本更低。 “对绿色软件的一个主要误解是,你必须做一些额外的事情,而且会花费额外的费用,”Kinsiveer 说。 “这不需要额外费用——你只需要把事情做好就可以了。”

绿色软件是高效的软件,可以让程序员开发出更快、更高质量的系统。

其他激励因素,特别是在软件的业务方面,是即将出台的与可持续发展相关的立法和法规。 以欧盟为例, 企业可持续发展报告指令 要求公司更多地报告其环境足迹、能源使用和排放,包括 与其产品的使用相关的排放

然而,其他开发人员可能会受到以下因素的激励: 气候危机 本身,希望为子孙后代培育一个适宜居住的星球发挥自己的作用。 软件工程师对其构建的实际目的和排放有着巨大的影响。

“这不仅仅是几行代码。 这些线条对人类有影响,”说 琼·萨卢,一位专门研究可持续软件工程的博士后研究员 代尔夫特理工大学, 在荷兰。 她补充说,特别是由于人工智能的社会影响,开发人员有责任确保他们所创造的东西不会破坏环境。

构建更环保的网站和应用程序

COP28 网站的创建者本可以从以下目录中获取页面: 低碳,其中重点介绍了现有低碳网站的示例。 荷兰网页设计和品牌公司的公司网站 老虎面包,例如,排放量小于 0.1克碳 每页浏览量。

创建像 Tijgerbrood 这样的可持续网站需要团队的努力,涉及不同的角色——从定义软件需求的业务分析师到设计师、架构师和负责运营的人员——并且包括可应用于软件开发过程每个阶段的绿色实践。

首先,分析师必须考虑他们正在设计的功能、应用程序或软件是否应该首先开发。 技术通常是为了创造下一个新事物,但要使软件可持续,还需要决定不构建什么,这可能需要转变思维方式。

设计阶段就是选择高效的算法和架构。 “在考虑解决方案之前而不是之后考虑可持续性,”说 基亚拉·兰扎,一名研究员 可持续人工智能单元加泰罗尼亚电信技术中心,在巴塞罗那。

在开发阶段,程序员需要专注于优化代码。 “我们需要减少用于运行软件的能源总量。 其中一些将来自写作 [code] 有效地,”说 汉娜·史密斯是绿色网络基金会的可持续数字技术顾问兼运营总监。

老虎面包的网站通过使用低分辨率图像和现代图像格式优化了公司的代码,仅在用户将动画滚动到视图中时才加载动画,并删除了不必要的代码。 这些技术有助于加快用户设备上的数据传输、加载和处理速度。 该网站还使用最少的 JavaScript。 “当用户加载网站时 [with] 大量的 JavaScript,这导致他们在自己的设备上使用更多的能量,因为他们的设备必须完成读取 JavaScript 和运行的所有工作 [it],”史密斯解释道。

在运营方面,您可以采取的最有影响力的行动之一就是选择可持续的网络托管或云计算提供商。 绿色网络基金会有一个工具可以 检查您的网站是否使用绿色能源运行, 以及ASA 可再生能源托管提供商名录。 您还可以询问您的托管提供商是否可以扩展软件在云中的运行方式,以便高峰使用由绿色能源供电,或者在非高峰时段暂停或关闭某些服务。

人工智能绿色之路

程序员在开发人工智能时也可以应用绿色软件策略。 修剪训练数据是让人工智能系统更加环保的主要方法之一。 从数据收集和预处理开始,值得考虑完成这项工作真正需要多少数据。 清理数据集以删除不必要的数据,或者仅选择数据集的子集进行训练可能是值得的。

“数据集越大,算法遍历所有数据所需的时间和计算量就越多,”因此会消耗更多的能量,说 萨洛

例如,在一个 学习 Sallou 和她的同事通过六种不同的人工智能算法来检测垃圾短信,发现 随机森林算法结合决策树集合的输出来进行预测,是最耗能的算法。 但将训练数据集大小减少到 20%(5,000 个数据点中仅包含 1,000 个数据点)使训练能耗降低了近 75%,而准确度仅损失了 0.06%。

选择更环保的算法也可以节省碳。 类似的工具 代码碳MLCO2 影响 可以通过估计训练不同人工智能模型的能源使用量和碳足迹来帮助做出选择。

用于测量软件碳足迹的工具

为了编写绿色代码,开发人员需要一种方法来测量系统整个生命周期中的实际碳排放量。 考虑到涉及的无数过程,这是一项复杂的壮举。 以人工智能为例,它的生命周期包括原材料提取、材料制造、硬件制造、模型训练、模型部署和处置,而且并非所有这些阶段都有可用的数据。

“目前我们还不了解生态系统的很大一部分,并且很难获取可靠的数据,”史密斯说。 她补充说,最大的需求是来自大型科​​技数据中心运营商和云提供商(如 亚马逊、谷歌和 微软

在这些数据出现之前,更实用的方法是测量软件消耗的电量。 “仅仅了解运行一个软件的能耗就可以影响软件工程师改进代码的方式,”萨卢说。

开发人员本身正在关注更多测量的呼吁,并且他们正在构建工具来满足这一需求。 例如,W3C 的可持续网页设计社区小组计划提供一个测试套件来衡量实施其网页可持续性准则的影响。 同样,绿色软件基金会写了一份 规格 计算软件系统的碳强度。 为了准确测量,Lanza 建议将系统运行的硬件与任何其他操作隔离,并避免运行任何可能影响测量的其他程序。

开发人员可以用来衡量绿色软件工程实践影响的其他工具包括仪表板,该仪表板概述了与云工作负载相关的估计碳排放量,例如 AWS 客户碳足迹工具Microsoft 的 Azure 排放影响仪表板; 能量分析仪或功率监视器,例如 英特尔的性能计数器监视器; 以及帮助计算网站碳足迹的工具,例如 生态平地机, 火狐分析器, 和 网站碳计算器

未来是绿色的

绿色软件工程正在成长和发展,但我们需要更多的认识来帮助该学科变得更加广泛。 这就是为什么,除了它的
绿色软件从业者课程绿色软件基金会旨在创建更多培训课程,其中一些甚至可能获得认证。 同样,萨卢(Sallou)共同教授研究生课程 可持续软件工程,其教学大纲是开放的,可以作为任何想要建立类似课程的人的基础。 她说,尽早向学生提供这些知识可以确保他们作为未来的软件工程师将其带到工作场所。

在人工智能领域,
纳文·巴拉尼,人工智能专家和 谷歌 云认证研究员同时也是绿色软件基金会指导委员会的成员,他指出,未来几年,人工智能本质上可能会包含绿色人工智能原则,就像安全考虑因素现在已成为软件开发不可或缺的一部分一样。 他表示:“这一转变将使人工智能创新与环境可持续性相结合,使绿色人工智能不仅是一个专业,而且是该领域的隐含标准。”

至于网络,史密斯希望绿色网络基金会到 2030 年将不复存在。“作为一个组织,我们的梦想是我们不再被需要,我们实现了我们的目标,并且互联网默认是绿色的,”她说。

Kinsiveer 观察到,在过去,由于缺乏硬件,因此必须对软件进行优化和构建。 他说,随着硬件性能和创新水平的提高,“编程本身的质量却下降了”。 但现在,该行业又回到了原点,回到了效率根源,并增加了可持续性。

“未来是绿色软件,”Kinsiveer 说。 “我无法想象其他方式。”

来自您网站的文章

网络上的相关文章

2024-03-23 14:00:03
1711289847

Leave a Reply

Your email address will not be published. Required fields are marked *

近期新闻​

编辑精选​