编辑:在发现所描述的行为不是源自 SLURM 而是源自 R 包 {drake} 后调整了问题标题和标签,该包用作执行 SLURM 数组作业的代理。
我有以下情况:
n=70
每个作业具有 X CPU 和 Y Mem的 Slurm 作业数组- 120个任务要运行
- 每个任务需要相同的 CPU + 内存,但需要不同的时间来完成
这会导致以下情况:
对于任务 71-120(完成 1-70 之后),我有 50 个活跃的工人和 20 个空闲的工人。空闲的工人将不再做任何工作,只是等待活动的工人完成。
现在随着时间的推移,越来越多的工人完成工作,在某些时候我有 5 个活跃的工人和 65 个闲置的工人。假设最后 5 个任务需要相当长的时间才能完成。在这段时间里,空闲的worker阻塞了集群上的资源,并不断的将以下内容打印到各自的日志文件中
2021-04-03 19:41:41.866282 | > WORKER_WAIT (0.000s wait)
2021-04-03 19:41:41.868709 | waiting 1.70s
2021-04-03 19:41:43.571948 | > WORKER_WAIT (0.000s wait)
[...]
在没有更多任务分配后,有没有办法关闭这些空闲的工作人员并释放资源?目前他们等到所有工作人员都完成后才释放资源。