0

我对科学的工作流程调度感兴趣。我试图从http://pegasus.isi.edu/找出并修改 Pegasus 工作流管理系统中现有的调度算法,但我不知道它在哪里以及如何去做。谢谢!

4

1 回答 1

1

Pegasus 在其映射阶段有一个站点选择的概念,它将作业映射到站点目录中定义的各个站点。站点选择在此处的文档中进行了说明

https://pegasus.isi.edu/wms/docs/latest/running_workflows.php#mapping_refinement_steps

在内部,有一个站点选择器界面,您可以实现该界面以合并您自己的调度算法。

您可以在以下位置访问 javadoc

https://pegasus.isi.edu/wms/docs/latest/javadoc/edu/isi/pegasus/planner/selector/SiteSelector.html

此包中包含一些实现

那里也实施了一个 Heft 版本。该算法在以下类中实现。

edu.isi.pegasus.planner.selector.site.heft.Algorithm

查看站点选择器的 Heft 实现将为您提供有关如何合并其他站点选择算法的良好模板。

但是,您需要记住,Pegasus 将工作流映射到各个站点,然后将工作流交给 Condor DAGMan 执行。Condor DAGMan 查看准备运行的作业,然后将它们释放到本地 Condor 队列(由 Condor Schedd 管理)。然后这些作业由 Condor Schedd 提交到远程站点。执行作业的实际节点由站点上的本地资源调度程序确定。例如,如果您将工作流中的作业提交到运行 PBS 的站点,则 PBS 将决定作业运行的实际节点。

在 Condor 的情况下,您可以将需求与您的工作相关联,这可以帮助您将工作引导到特定节点等。

使用工作流,您还可以关联作业优先级,以确定提交主机上本地 Condor 队列中作业的优先级。如果队列中有多个作业,您可以使用它来控制 schedd 首先提交的作业。

于 2013-07-09T00:17:19.073 回答