我在一个非常大的集群上有一个用户帐户。我以前有使用 Grid Engine 的经验,想使用集群来执行阵列作业。
文档告诉我使用“qsub”进行负载平衡/提交多项作业。因此我假设这意味着集群具有 Grid Engine。
但是我的所有 Grid Engine 脚本都无法运行。我查看了文档,发现有点奇怪。现在我慢慢怀疑这个集群实际上没有 Grid Engine,也许它正在运行某种叫做 Torque 的东西(?!)。作为 Grid Engine 用户,手册页中的整个术语对我来说有点奇怪,例如他们谈论的是“批量作业”而不是“数组作业”。没有提到我所依赖的变量,如 SGE_TASK_ID 等。相反,它们引用以 PBS_ 开头的变量。不过,还有 qsub 和 qstat 命令。
qsub 的行为也不同,显然无法使用 bash 脚本注释等指定命令行参数。
有一个关于集群系统的文档,但它没有说明 DRM 中间件实际上是什么 - 它简单地将整个 DRM 系统称为“qsub”。
我试过
qsub --version
qsub: 1.2 2010/8/17
我不确定当我在该集群上调用 qsub 时我实际上在运行什么!
我的问题是,我如何才能知道我正在运行的是 Grid Engine 还是 Torque(或任何版本)?
答案1
虽然这不能直接回答你的问题,但我想指出的是qsub/qstat/qselect...命令都是在接口中定义的POSIX 批处理环境服务 规范,因此PBS_
变量的前缀。将 BE 接口限制为标准化子集应该可以使您的脚本独立于特定的网格实现。
希望这可以帮助。