编辑推荐:
在软件密集型系统的能源消耗成为全球性问题的背景下,本期IEEE Software特刊聚焦“绿色洁净软件可持续性”。研究围绕如何通过软件工程实践最小化软件系统的能源足迹(“绿色洁净软件”),以及如何利用软件支持环保流程(“绿色赋能软件”)展开。特刊收录的六篇文章从AI能效、云部署碳评估、网络碳足迹到应用能耗测量等多个维度,提供了评估框架、优化方法和实践案例。研究强调,真正的软件可持续性需综合考虑技术、经济、社会和环境四个焦点维度,以及随时间变化的直接、赋能、系统性影响和具体情境要素,呼吁培养具备多维度可持续性思维的新一代软件专业人员。
在数字技术席卷全球产业的时代,一个常被忽视的阴影正悄然扩大:软件的能源消耗。从支撑比特币交易的庞大算力,到训练GPT-4所耗费的惊人电量(估计达5至50吉瓦时),再到数据中心每年数以百太瓦时计的能耗,软件密集型系统正成为不容小觑的“电老虎”。更令人担忧的是,随着人工智能(AI)、云计算和区块链等技术的爆炸式增长,这一趋势并未减缓,反而在加速。面对气候变化的紧迫挑战,仅仅使用可再生能源为软件“供电”是远远不够的,关键在于从源头上减少软件自身的能源需求。这就是“绿色洁净软件”(Green Clean Software)的核心使命——最小化软件系统执行和使用所需的能量。
与此同时,软件本身也可以成为推动绿色变革的利器,例如管理可再生能源网络、促进绿色出行行为的智能应用,或是通过数字孪生技术优化能源使用,即“绿色赋能软件”(Green through Software)。这两者共同构成了软件可持续性的重要一环。然而,要构建真正可持续的软件系统,仅关注环境的“绿色”是片面的。正如研究人员指出的,软件可持续性应被定义为“在持续变化的背景下,保护软件的长期有益使用及其适当演进”。这要求我们在开发与运营软件时,必须平衡地考虑至少四个焦点维度:技术维度(涉及软硬件的整个生命周期活动)、经济维度(财务与投资)、社会维度(对社区和个人的影响)以及环境维度(能源消耗与更广泛的生态影响)。此外,还需审视其随时间变化的影响——不仅是软件运行时的直接能耗,还包括其应用带来的赋能效应(如替代或优化其他资源使用)和长期引发的系统性社会经济变革。最后,情境要素(如网络设备、预算约束、利益相关者、能源资源等)对可持续性的影响至关重要,却常被忽视。
为了应对上述挑战并探索解决方案,学术期刊《IEEE Software》组织了一期以“绿色洁净软件可持续性”为主题的特刊。这期特刊经过严格评审,收录了六篇代表性文章,从AI模型训练、代码生成、云基础设施、网络系统到Web应用和电子游戏,全方位探讨了软件可持续性的评估、优化与实践。这些研究不仅提供了具体的工具与方法,更重要的是,它们共同指向了一个核心理念:培养能够综合考量焦点维度、时间影响和具体情境的新一代软件专业人才,是将可持续性融入日常开发工作的关键。
研究者们在各篇文章中运用了多种关键技术方法。在AI能效领域,研究采用了跨数据、模型架构、训练、系统设计和推理五个阶段的“正交优化”组合分析,并通过实验量化累积节能效果。在云碳足迹评估方面,开发了基于基础设施即代码(Infrastructure-as-Code, IaC)配置分析和工作负载模拟的预部署估算框架(LEAF),并与实际部署后测量结果进行对比验证。对于网络系统,则设计了能考虑设备非线性功耗曲线的上下文感知探测工具(NetCarbTrace),用于近实时的碳足迹估算。在工业实践研究中,通过在真实企业环境(Berger-Levrault)中使用监控工具和模拟工作负载,来测量和解释复杂Web应用的能耗。此外,还引入了标准化的、以“焦耳每帧”为单位的通用度量指标,用于量化视频游戏的能耗。这些方法都强调在实际或模拟环境中进行测量、分析与验证,以提供具有指导意义的洞见。
以下是对特刊中六篇主要研究结果的概要:
- •
Tu(r)ning AI Green: Exploring Energy Efficiency Cascading with Orthogonal Optimizations
本研究通过系统性的软件工程方法,探索AI开发流程中的能效优化。研究表明,在数据、模型架构、训练、系统设计和推理这五个阶段组合应用正交优化技术,可以在对精度影响最小的情况下,实现4.6%到94.6%的累积节能。这为开发者在AI系统开发中平衡效率、性能和环保责任提供了实用指导。
- •
Is ChatGPT Really Green? Evaluating AI-Generated Code for Energy-Efficiency
该研究评估了AI生成代码的能效。通过对比ChatGPT对200个Stack Overflow问题的回答与已被采纳的人工答案,作者发现了40个案例中人工解决方案在能效上优于AI。这项工作指出了人类洞察力仍然关键的区域,并为设计具有能源意识的AI编码助手提供了实用指引,展示了人机协作如何推动更绿色的软件实践。
- •
LEAF: A Layered Emission Assessment Framework for Cloud Deployments
此研究提出了LEAF框架,用于云部署的早期碳足迹估算。通过分析基础设施即代码配置和模拟工作负载,LEAF提供的预部署能源估算与部署后实际测量值的误差在15.7%以内。这种方法使架构师和开发者能够在资源配置之前就做出考虑可持续性的决策, bridging the gap between software practices and infrastructure planning.
- •
Energy Consumption of Web Applications: Measurement Challenges in Practice
该研究聚焦工业实践中Web应用能耗测量的挑战。通过在Berger-Levrault公司使用监控工具和负载模拟,研究表明架构选择和技术栈可以使能耗降低高达70%。这些发现强化了基于使用情况做设计决策的必要性,并为在真实世界的大规模工业环境中应用绿色软件原则提供了实用建议。
- •
NetCarbTrace: A Probing Tool to Measure and Explore the Carbon Footprint of Computer Networks
研究超越了应用和基础设施,关注网络系统的能效。NetCarbTrace工具提供了一种情境感知方法来评估网络设备的能源和碳足迹,并考虑了其非线性功耗曲线。通过分析真实世界的端点,该研究展示了近实时的碳估算,并为设计碳优化的网络服务提供了可操作的见解,强调可持续性必须考虑整个软件生态系统。
- •
Energy Profiling in Games: Introducing a Frame-Based Power Consumption Metric
该研究将绿色软件工程原则扩展至数字娱乐领域。通过引入以“焦耳每帧”为单位的通用度量标准,研究为量化视频游戏的能耗提供了一种标准化方法,使开发者能够平衡性能与环境影响。这项工作凸显了绿色软件工程原理在不同领域的广泛适用性。
总结与讨论部分指出,当前研究在软件可持续性的多个方面取得了进展,但也揭示了重要的不足与未来方向。首先,在焦点维度上,现有工作大多集中于技术和环境维度,而对软件社会维度(即其有益用途)的探讨常常是隐含的,覆盖不足。经济维度的考量也相对薄弱。其次,在时间维度上,现有研究几乎只关注了软件运行时的直接环境影响,而对赋能效应(如通过软件优化其他流程)和系统性效应(如引发的长期文化或结构性变革)涉及甚少。然而,真正的可持续性要求我们超越直接能耗测量,去推动那些能随时间推移减少消耗的实践,并最终促成软件使用文化的根本转变。最后,情境的重要性被反复提及,但具体是哪些情境要素(如特定硬件、用户行为、地理位置能源结构)影响了可持续性结果,却很少被明确化和用于限定研究成果的适用范围。如果能将可持续性措施与相关情境要素关联,就能在情境变化时,追溯其对可持续性结果的潜在影响。
因此,本特刊的意义在于,它不仅提供了降低软件能源足迹的具体技术和方法(如AI能效优化、云碳评估框架、网络能耗探测工具等),更重要的是,它倡导了一个更为全面和系统的软件可持续性观。它呼吁软件专业人士、研究人员和教育者,必须超越单一的“绿色洁净”视角,转而采用一种融合了技术、经济、社会、环境四大焦点维度,并考量长期效应与具体情境的“三重”可持续性思维框架。只有培养出具备这种多维平衡能力的新一代软件从业者,才能应对数字时代日益严峻的能源与环境挑战,设计出真正可持续的、能够长期造福社会的软件系统。这期特刊中的文章,正是迈向这一目标的重要基石和行动号召。