工作流引擎应该如何与资源管理器进行交互:对于一个常见的工作流调度接口的提议
摘要:科学工作流管理系统(SWMS)和资源管理器一起确保任务在提供的资源上按照所有依赖关系执行,并实现某个优化目标,例如最小化总时间。然而,在实践中,SWMS和资源管理器之间没有明确的调度责任分离,因为它们的不同组件之间没有统一的关注点分离。这有两个后果。首先,缺乏标准化的API来在SWMS和资源管理器之间交换调度信息会阻碍可移植性。当一个组件需要被另一个组件替代时(例如,在同一个资源管理器上使用另一个SWMS),这会导致昂贵的适应过程。其次,由于功能重叠,当前安装通常实际上有两个调度器,都在不完整信息下做出部分调度决策,导致子优化的工作流调度。 在本文中,我们提出了一个简单的REST接口,用于连接SWMS和资源管理器,使任何SWMS都能将动态工作流信息传递给资源管理器,从而实现最大程度的信息化调度决策。我们提供了一个实现该API的示例,使用Nextflow作为SWMS和Kubernetes作为资源管理器。我们对九个真实工作流的实验结果表明,与标准的Nextflow/Kubernetes配置相比,这种策略可以将总时间缩短最多25.1%,平均缩短10.8%。此外,更广泛地实施此API将能够实现更简洁的代码基础,更简单的工作流系统组件交换以及统一的实施新调度算法的位置。
作者:Fabian Lehmann, Jonathan Bader, Friedrich Tschirpke, Lauritz Thamsen, Ulf Leser
论文ID:2302.07652
分类:Distributed, Parallel, and Cluster Computing
分类简称:cs.DC
提交时间:2023-07-17