继续重试HPC任务,直到资源可用(Windows HPC Server 2008 R2 SP3)

时间:2011-07-25 11:03:24

标签: hpc

HPC任务要么成功要么失败,但是如何将“稍后再试”回到调度程序,确定我可以使用失败并重新提交任务但是我需要一种方法来确定我是否因为某些事情被破坏而失败(放弃)或稍后重试,因为此任务正在等待另一项任务(并继续尝试,直到我们错误或成功完成)

有没有办法使用HPC API或类似方法实现这一目标?从我所听到的,非零是失败,零是成功,就是这样,当然必须有一种很好的方法来实现这种“稍后尝试”的行为。

背景

我们正在尝试在单个作业中运行多个HPC任务,这些任务之间具有复杂的相互依赖性,因为第一个任务正在执行其他任务,并等待第一个任务处理足够的数据以便他们可以制作一个开始(一种级联执行,但不是任何简单的顺序,所以我们不能在HPC中定义依赖)。

最初,我试图让这些多个任务在多个核心之间共享,以便在等待主任务完成他们感兴趣的任务时可以睡觉。类似于Windows将分时处理的方式。现在很清楚HPC(按设计!)只允许one task per core所以如果你有一台八核机器,你一次只能运行八个任务。

解决方案似乎是使用批处理文件或类似方法来生成多个进程,但是在我走这条路之前,我想知道上述问题是否可行。

1 个答案:

答案 0 :(得分:0)

  1. 不幸的是,任务无法以导致调度程序重试的方式失败。
  2. 如您所料,建议的方法是让每个任务运行批处理文件或powershell脚本,以启动您想要启动的所有进程。
  3. 如果您不想这样做,SP2中的HPC调度程序现在允许核心超额预订(每个核心有多个任务),这可能适用于解决您的问题。请参阅此处以获取有关如何设置的指南:Oversubscribe core counts on cluster nodes