![如何设置批处理环境的路径以查找“qsub”命令的位置](https://linux22.com/image/94003/%E5%A6%82%E4%BD%95%E8%AE%BE%E7%BD%AE%E6%89%B9%E5%A4%84%E7%90%86%E7%8E%AF%E5%A2%83%E7%9A%84%E8%B7%AF%E2%80%8B%E2%80%8B%E5%BE%84%E4%BB%A5%E6%9F%A5%E6%89%BE%E2%80%9Cqsub%E2%80%9D%E5%91%BD%E4%BB%A4%E7%9A%84%E4%BD%8D%E7%BD%AE.png)
我有一个名为“minvappmpi”的程序,它是并行的,它本身调用 qsub 作为子例程。
当我在集群上使用该程序时,它会抛出错误
qsub: command not found
如果我想使用“qsub”提交另一份工作,那么一切都很好。只有当我在程序中调用“qsub”时,才会以某种方式找不到该命令。
我认为问题与路径有关:不知何故,我工作的环境知道可执行文件“qsub”所在的位置,但集群不知道?
我想知道:首先,如何确定批处理环境的路径是什么,以及它是否与登录环境的路径不同,其次,是否有办法更改批处理环境的路径没有root权限的批处理环境?
非常感谢你的帮助!
答案1
好的!我已经进步了!
我尝试提交我的工作
qsub -V run.sh
据我所知,这会将 qsub 命令环境中的所有变量导出到批处理环境中。这非常有效,现在批处理环境知道“qsub”在哪里:-)。
但我有一个新问题。
我需要在集群上提交作业
qsub -P Projectname
而我的程序不知道这一点!它只是调用“qsub”。
有什么办法可以解决这个问题而无需重新编译吗?我不想重新编译,因为我正在远程运行该程序,并且远程计算机上没有所有正确的库(并且没有 root 权限就无法安装它们:-))
非常感谢你的帮助!