我正在尝试让 SGE 根据 qsub 的作业份额参数并发运行作业阵列任务,但似乎没有按预期工作。有没有办法根据份额启用并发任务执行?
我有一个脚本,它可以休眠来模拟长时间运行的任务,我将它作为不同的作业数组提交给一个小型 SGE 集群(26 个插槽),如下所示:
qsub -t 1-201 -js 100 sge_longRunning.sh
qsub -t 1-202 -js 101 sge_longRunning.sh
qsub -t 1-203 -js 102 sge_longRunning.sh
我希望这些任务能够随着时间的推移几乎均匀地分布在集群上,但我得到的结果是最后提交的数组得到了完全执行(全部 203 个任务),然后第二个得到了完全执行,最后是第一个。
集群按照功能策略运行,具有 100 万张票和 0.9 的功能策略票权重。
有没有提示如何让不同作业阵列的任务同时运行,几乎平等地共享可用资源?有没有提示上述配置/测试设置可能存在什么问题?
答案1
唯一可行的方法是作为不同的用户或项目提交具有自己份额的作业。
如果这不切实际,那么尝试将其作为一个大数组作业提交,该作业根据脚本维护的队列以您喜欢的顺序选择要执行的工作。