我在有限的 CPU 资源上使用 MPI 程序。它涉及在 12 线程 CPU 上运行需要 20 个独立进程的应用程序。我使用不同的参数一次又一次地运行它。
在应用程序即将结束时,20 个进程中的大多数已经完成,我的 12 个线程中有 11 个处于空闲状态,等待最后一个线程完成。我希望利用这些空闲的核心来启动下一个作业,而无需等待当前作业完成。最好是当一个核心已经空闲时,我已经可以启动下一个作业了。
Torque 已设置,但我需要提前说明资源需求。我希望动态分配这些 CPU 核心,以便 CPU 始终处于 100%。
答案1
如果您的集群/节点启用了共享模式,那么下一个作业就可以启动了。基本上,您需要的是节点分配策略,但这可以通过作业调度程序环境(例如 Torque + Moab/Maui 或 Slurm)来实现。仅使用 Torque 很可能无法实现这一点。
另一种选择是在单个作业脚本中启动任务。任务启动器需要足够智能,才能确定有哪些资源可用。这可以用简单的作业脚本编写,但可能比较棘手。(您可以研究一下 Nitro 甚至 Condor)。