为什么不建议squeue循环运行以避免 Slurm 过载,但bjobsLSF 或qstatSGE 的工具没有提到此类限制?
手册页的squeue状态:
表现
执行 squeue 会向 slurmctld 发送远程过程调用。如果来自 squeue 或其他 Slurm 客户端命令的足够多的调用(将远程过程调用发送到 slurmctld 守护程序)一次传入,则可能会导致 slurmctld 守护程序的性能下降,甚至可能导致拒绝服务。
不要运行 squeue 或其他从 shell 脚本或其他程序中的循环向 slurmctld 发送远程过程调用的 Slurm 客户端命令。确保程序将对 squeue 的调用限制为您尝试收集的信息所需的最低限度。
据我了解,这不赞成使用例如watch squeue。此类警告常见于特定站点的文档中,例如此处:
虽然 squeue 是查询作业和队列状态的便捷命令,但请注意不要发出过多的命令,例如作业提交后每五秒左右使用脚本调用一次作业状态查询。
相比之下,我在其他引擎上找不到类似工具的警告,例如qstat或bjobs。我看到人们以重复的方式使用所有这些工具,没有区别,例如这里用于 squeue,这里用于 bjobs。
上面引用的 Slurm 文档提到了 RPC,它是一种与其他引擎不同的方式吗?Slurm 和其他网格引擎之间是否存在架构差异,导致查询所有作业的状态成本更高?