HPC 任务要么成功要么失败,但是我如何将“稍后尝试”传达回调度程序,确定我可以使用失败并重新提交任务,但我需要一种方法来确定我是否因为某些东西被破坏而失败(放弃)或稍后再试,因为此任务正在等待另一个任务(并继续尝试,直到我们出错或成功完成)
有没有办法使用 HPC API 或类似方法来实现这一点?据我所知,任何非零都是失败,零是成功,就是这样,肯定有一个很好的方法来实现这种“稍后尝试”的行为。
背景
我们试图在一个作业中运行多个 HPC 任务,这些任务之间存在复杂的相互依赖关系,因为第一个任务正在执行其他任务,等待第一个任务处理足够的数据,以便他们可以开始(一种级联执行,但不是以任何简单的顺序执行,因此我们无法在 HPC 中定义依赖关系)。
最初,我试图让这些多个任务在多个内核之间共享,这样它们就可以在等待主要任务完成他们感兴趣的任务时休眠。类似于 Windows 分时进程的方式。现在很清楚,HPC(按设计!)每个核心只允许一个任务,所以如果你有一台八核机器,你一次只能运行八个任务。
解决方案似乎是使用批处理文件或类似文件来生成多个进程,但是在我走这条路之前,我想知道上述问题是否可行。