Parallel processing PBS torque:如何解决在相互花费非常不同时间的并行任务中的堆芯浪费问题?

Parallel processing PBS torque:如何解决在相互花费非常不同时间的并行任务中的堆芯浪费问题?,parallel-processing,pbs,torque,Parallel Processing,Pbs,Torque,我正在PBS torque管理的集群中运行并行MATLAB或python任务。现在令人尴尬的是,PBS认为我使用了56个内核,但这是第一个,最终我只运行了7个最难的任务。现在浪费了49个核 我的并行任务花费了非常不同的时间,因为它们在不同的模型参数中进行搜索,在我尝试之前,我不知道哪个任务将花费多少时间。一开始,所有的内核都被使用了,但很快,只有最难的任务运行了。由于整个任务尚未完成,PBS torque仍然认为我使用了全部56个内核,并阻止新任务运行,但实际上大多数内核都处于空闲状态。我希望P

我正在PBS torque管理的集群中运行并行MATLAB或python任务。现在令人尴尬的是,PBS认为我使用了56个内核,但这是第一个,最终我只运行了7个最难的任务。现在浪费了49个核

我的并行任务花费了非常不同的时间,因为它们在不同的模型参数中进行搜索,在我尝试之前,我不知道哪个任务将花费多少时间。一开始,所有的内核都被使用了,但很快,只有最难的任务运行了。由于整个任务尚未完成,PBS torque仍然认为我使用了全部56个内核,并阻止新任务运行,但实际上大多数内核都处于空闲状态。我希望PBS检测到这一点,并使用空闲内核运行新任务

所以我的问题是,PBS torque中是否有一些设置可以自动检测任务中使用的真实内核,并将真正空闲的内核分配给新任务

#PBS -S /bin/sh
#PBS -N alps_task
#PBS -o stdout
#PBS -e stderr
#PBS -l nodes=1:ppn=56
#PBS -q batch
#PBS -l walltime=1000:00:00
#HPC -x local
cd /tmp/$PBS_O_WORKDIR
alpspython spin_half_correlation.py 2>&1 > tasklog.log

您的问题的简短回答是:PBS无法回收分配给作业的未使用资源


由于您的计算本质上是一组独立的任务,因此您可以而且可能应该尝试将作业拆分为56个独立的作业,每个作业运行一个单独的模型参数组合,并且在所有作业完成后,您可以运行另一个作业来收集和汇总结果。这是一种得到充分支持的做事方式。PBS为此类作业提供了一些有用的功能,如数组作业和作业相关性。

谢谢。非常简洁和有用的答案!