我需要根据调度程序的类型运行不同的脚本,这需要一种可靠的方法来检测调度程序是否是Torque,SGE或其他。就像$ SHELL告诉我正在使用哪个shell。或者像名字一样。如何检测我使用的HPC调度程序(Torque,Sun Grid Engine等)?
我知道environmental variables这两个系统设置,但他们不会给我一个可靠的或一个优雅的方式 - 给定env的命令。变量被命名为相似或相同的..需要几个ifs和buts,然后才能断定它是哪一个。
我需要根据调度程序的类型运行不同的脚本,这需要一种可靠的方法来检测调度程序是否是Torque,SGE或其他。就像$ SHELL告诉我正在使用哪个shell。或者像名字一样。如何检测我使用的HPC调度程序(Torque,Sun Grid Engine等)?
我知道environmental variables这两个系统设置,但他们不会给我一个可靠的或一个优雅的方式 - 给定env的命令。变量被命名为相似或相同的..需要几个ifs和buts,然后才能断定它是哪一个。
在您的.bashrc
中明确设置一个环境变量,您可以稍后查询。
例如
export RUNNING_ON="moms_gpu_cluster5"
export THIS_SYSTEMS_SCHEDULER="SGE"
您不必依赖sysadmin提供给您的东西,或者调度程序执行或不执行的操作。
谢谢,我更喜欢一种自动方法,它可以帮助我从系统配置中获取它,而不依赖于用户设置。 –
其中的每一个都会导出一组环境变量。找那些人看看用什么调度器来启动你的工作。或者只是阅读系统的文档。 – Jeff
好吧,我知道这些,他们不给我一个**可靠的**或一个优雅的方式 - 给出env的命令。变量被命名为相似或相同的..需要几个ifs和buts,然后才能断定它是哪一个。 –