可持续IT的绿色编码

前瞻思维

9.11.2023

一种新的编程方法——资源高效编程

信息技术是众多行业创新的基础。然而,它的能源消耗在未来可能会带来巨大的挑战。因此,信息技术专家们希望通过“绿色编程”大幅度减少信息技术行业所产生的二氧化碳排放。

无论是互联网、数据中心,还是人工智能:只要涉及到高强度计算,都会产生高能耗以及随之而来的温室气体排放。根据美国计算机协会(ACM)的一份报告,如今的信息和通信技术(ICT)与全球航空在气候影响这一方面的表现大致相当:研究显示,信息和通信技术行业每年的温室气体排放占比为 1.8% 至 2.8%。如果同时考虑到硬件生产所带来的影响,其份额甚至接近 4%。而全球航空的温室气体排放估计占比在 2.5% 左右。

在未来,信息和通信技术的能源需求甚至可能会大幅增加:美国计算机协会的数据显示,如果发展维持现状,到2050 年,它可能占到全球所有温室气体排放的三分之一。“大数据、物联网和人工智能等计算密集型过程非常耗能。”柏林应用科技大学的教授沃尔克·沃尔格穆特博士(Dr. Volker Wohlgemuth)说,“诚然,它们能为可持续发展做出很大贡献,但它们本身也必须尽可能节约资源。”更具能效的硬件设施和环保型电力供应可以减少这个过程中的温室气体排放。同时,软件开发也可以通过“绿色编程”,即 Green Coding,为保护气候做出贡献。这是一种软件开发方法,目的是减少设计、创建、编辑和发布软件项目所需的资源和能源消耗。在车辆开发领域,这个话题已经存在一段时间了:控制单元在其存储配置和计算能力方面严重受限,因此在开发过程中,工程师们必须进行高效编程。而通过智能分配计算任务,还可以更进一步节省能源:即在车辆中进行节能型计算,在云端进行密集型计算。

“ 膨胀软件”问题

受德国联邦环境署委托进行的研究表明,软件对信息技术的能源消耗和温室气体排放有很大的影响。研究比较了两个文本处理程序占用计算机资源的情况:在一个标准使用场景中,一个软件消耗了 3.6 瓦时的能源,而另一个软件只消耗了 0.93 瓦时。“尽管两个软件执行的任务相同,但第二个软件只需要第一个软件大约四分之一的电能,因此显然更为节能。”研究人员表示。在比较三个互联网浏览器时,也得出了类似的结果:在相同条件下,这三个互联网浏览器在正常使用中的能源消耗分别为 1.95、0.91 和 0.66 瓦时。在空闲状态下,浏览器处理器使用率甚至在 0.8% 到 12% 之间波动。

数据不佳的一部分原因是因为“膨胀软件”(Bloatware),即软件中有大量不常使用的功能而变得臃肿且能效低下。同时,编程语言也会导致能源消耗的明显差异:例如 70 年代初开发的 C 语言和相对较新的 Rust 语言在能耗方面的表现最好,而广泛使用的 Ruby 和 Python 语言则会导致能耗大幅上升。在一次比较测试中,这些编程语言在执行相同任务的情况下,能耗分别达到 C 语言的 70 甚至 76 倍。在很大程度上,这是因为它们在程序运行期间每次都需要重新编译,而 C 语言或 Rust语言只需要在调用软件时进行一次编译。“ 一些编程语言可通过特定的库,为一些问题提供了更好的解决方法,而这些解决方法通过其他语言可能无法实现。”沃尔格穆特教授指出,“因此,我们要具体情况具体分析。”

为了最大限度地降低软件开发对环境的影响,需要从不同角度思考问题。“软件开发包括软件架构、实施、方法论和平台。”沃尔格穆特说,“在这些方面,都有许多不同的方式来实现绿色编程。”例如,编写一个数学函数(自然数阶乘计算)时,不直接用 Python 语言进行编写,而是使用 C语言库中预定义的版本。这样一来,这个过程就可以节省超过 90% 的能源。在随机数计算方面,也测量到类似的能耗差异。同理,也可以采用上面的方法。

“垃圾广告在欧盟一年内产生的温室气体相当于意大利城市都灵的总排放量。”

约瑟夫·德·沃-盖斯
KDE 协会项目和社区经理

避免不必要的代码

在开源软件库方面,也可以进一步优化:很多库中包含了一些从未用过的代码,这在编程过程中会浪费能源。减少分布式软件应用的网络流量,也可以实现节能。“比如,我们可以使用分辨率较低的图片,或使用二进制文件格式,而不是文字版的文件格式。”沃尔格穆特表示,“ 另外,尽量在本地而不是在云端进行计算,也可能会更节能,但这还需要进一步研究。”值得注意的是,软件也会影响硬件的使用寿命,“如果因为膨胀软件数量持续增加而且持续膨胀,软件需要占用的资源越来越多,那么就需要提前更换电脑。这样也会浪费更多能源和原材料。”沃尔格穆特说,“程序员在编写软件时也应该重视这一点。”

为了能够记录这一点以及其他对于代码可持续性的不同要求,并对那些特别环保的产品进行表彰,德国联邦环境、自然保护、建设和反应堆安全部已将“蓝天使”(Blue Angel)环保认证标志用在了软件上。约瑟夫·德·沃-盖斯(Joseph De Veaugh- Geiss)是 KDE 软件社区“蓝天使自由和开源软件”项目负责人,他说:“这里会考虑多个不同方面的可持续发展因素。除了考虑能源消耗之外,还要看硬件的使用寿命,以及用户的自主权。比如说,可不可以自主关闭广告推送功能——垃圾广告在欧盟一年内产生的温室气体相当于意大利城市都灵的总排放量。

日益增长的关注

目前只有一款软件获得了蓝天使认证。沃尔格穆特发现,绿色编程还没有引起企业的极大重视。他说:“政府应该把蓝天使作为公共采购的授予标准。”与之相反的是,这个话题在研究和教育领域已得到了更多关注,因为人们都意识到,计算机程序和硬件可以对环境和气候产生巨大影响,既有正面影响,也有负面影响。“绿色编程可应用于所有行业,或者作为授予标准推行。特别是在信息技术、金融、汽车或在线贸易等领域,它具有巨大的潜力。”沃尔格穆特说,“因此,开发人员需要树立这样的意识:信息技术工作与环境息息相关,我们可以为保护气候做出巨大贡献。”–

信息

本文首次发表于《保时捷工程杂志》2023年第2期。

作者:Christian Buck

版权:本文中发布的所有图片、视频和音频文件均版权保护。未经保时捷工程书面许可,不得部分或全部复制。欲了解更多信息,请联系我们。

联系方式

您有问题或想了解更多信息吗?请联系我们:info@porsche-engineering.de