我对科学工作流程安排感兴趣。我试图从http://pegasus.isi.edu/找出并修改Pegasus工作流管理系统中现有的调度算法,但我不知道它在哪里以及如何这样做。谢谢!
答案 0 :(得分:1)
Pegasus在其映射阶段有一个选址的概念,它将作业映射到站点目录中定义的各个站点。网站选择在此处的文档中进行了解释
https://pegasus.isi.edu/wms/docs/latest/running_workflows.php#mapping_refinement_steps
在内部,您可以实现一个站点选择器接口,以合并您自己的调度算法。
您可以在
访问javadochttps://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首先提交的作业。