数据分析工作流是科学研究、工程领域以及商业决策中的重要组成部分,它涉及通过复杂的计算任务来处理海量数据[1]。这类工作流包含大量且复杂的任务,随着用户需求的增加而不断扩展规模。它们通常由云计算系统来管理,这类系统能够提供应用程序、网络和数据存储等虚拟化资源[2]。然而,云计算固有的延迟和高数据传输成本使其不适合用于健康监测或紧急系统等需要实时、低延迟的应用场景。
为了解决这些限制,雾计算将云计算模式延伸到更靠近网络边缘的位置[3]。通过将计算任务放到网络边缘,雾计算系统可以有效降低延迟、减少数据传输时间并消除通信瓶颈,因此成为现代数据分析解决方案中的重要组成部分。
在这样异构的云雾环境中,高效的任务调度对于优化运营成本和提高工作流性能至关重要。工作流通常以有向无环图的形式表示,其中节点代表计算任务,边则表示数据或控制上的依赖关系[4]。面临的挑战在于如何智能地将这些任务分配到最合适的云节点或雾节点上,因为那些需要大量数据或复杂计算的任务往往更适合在云资源上处理,而那些要求低延迟的任务则更适合放在雾节点上[5]、[6]。由于云计算和雾计算在架构上的差异,它们需要不同的调度方法[7],而工作流有向无环图结构上的任意复杂性进一步增加了优化难度。
目前广泛采用的基于列表的启发式调度算法因其简单性和不错的性能而被广泛应用,但在动态且复杂的云雾环境中,它们往往难以保证始终能得到最优结果。虽然这些方法提供了多种任务优先级排序和资源分配策略,但其静态的、基于规则的设计使得它们难以在各种不同的工作流图中始终找到最佳解决方案。这就导致在实际工作中性能难以预测,很难在不了解某种启发式方法适用性的情况下就期望它能始终带来接近最优的结果。
因此,这类方法可能难以灵活适应现实工作中不断变化的结构特征。这有时会导致任务完成时间无法得到充分优化、资源利用率低下或等待时间增加,尤其是在处理大规模或结构极为复杂的有向无环图时。这一特性表明,在当今工作流变化极大的云雾计算环境中,需要更具适应性的解决方案来进一步提升其效率。
为了解决这些问题,本文提出了一种新的调度方法,该方法利用图神经网络,具体来说是GraphSAGE算法。如图1所示,该GNN模型能够根据输入任务图的唯一结构特征和处理器参数,动态学习并预测最适合的现有启发式调度算法。这种数据驱动的方法无需进行逐一的算法比较,因而能够提供一种具备自适应能力和预测功能的解决方案。其目标是通过选择最优的启发式策略,实现更短的任务完成时间、更高的资源利用率以及更好的整体系统性能,其预测能力则通过F1分数和准确率来衡量。
在FogWorkflowSim云雾模拟环境中,对所提出的基于GNN的算法进行了严格评估。测试中使用了多种不同的工作流数据集,包括分布式工作流[8]、开源的WfCommons框架[9]以及Pegasus工作流[10]、[11]。
在多种处理器配置下,将该算法与七种常见的启发式算法进行了性能对比,这七种算法分别是HEFT、CPOP、PEFT、PPTS、HSV、IPEFT和IPPTS。评估重点关注了任务完成时间、调度长度比、加速比、效率以及吞吐量等关键指标。测试结果表明,所提出的基于GNN的方法始终能够提升调度可靠性,显示出其对不同工作流结构的良好适应性,因此可作为一种可靠的解决方案,用于云雾计算中的复杂任务调度。
图1展示了所提出的基于GNN的任务调度方法的整体结构。该图说明了调度系统的各个关键组成部分。用户需求以工作流输入的形式提交,这些输入表现为任务图。在这些图经过数据预处理后,会被送入图神经网络模型中。该模型的运行包含三个核心阶段:任务节点之间通过消息传递实现信息共享、学习特征以完整表征整个工作流,以及后续的调度策略分类。基于学到的任务图特征,模型会选出最合适的启发式调度策略,然后将该策略应用于云资源和雾资源上的任务调度,从而优化任务完成时间、效率及吞吐量等指标。
本文的结构如下:第2节介绍了与启发式调度算法以及基于机器学习的任务调度算法相关的研究内容;第3节阐述了基于列表的启发式任务调度问题;第4节介绍了用于任务调度的机器学习模型,第5节则展示了相关实验结果;第6节为讨论部分,第7节为研究结论。