2017-06-25 85 views
1

我尝试使用GNU并行执行多节点(2)和20的PPN中的qsub作业,但它显示出一些错误。qsub使用GNU并行运行的作业

#!/bin/bash 
#PBS -l nodes=2:ppn=20 
#PBS -l walltime=02:00:00 
#PBS -N down 

cd $PBS_O_WORKDIR 
module load gnu-parallel 

for cdr in /scratch/data/v/mt/Downscale/*;do 
    (cp /scratch/data/v/mt/DWN_FILE_NEW/* $cdr/) 
    (cd $cdr && parallel -j20 --sshloginfile $PBS_NODEFILE 'echo {} | ./vari_1st_imge' ::: *.DS0) 
done 

当我运行上面的代码中,我得到了以下错误(请注意,所有的路径都适当的检查,并没有使用qsub相同的代码是在正常的电脑运行正常)

$ ./down 
parallel: Error: Cannot open echo {} | ./vari_1st_imge. 

&为$ qsub命令下来 - 没有输出创造

我使用并行--version GNU平行20140622

请帮助解决问题

回答

1

首先尝试将--dryrun添加到parallel

但我的感觉是,$PBS_NODEFILE没有设置为某种原因,并且GNU并行试图读取命令作为--sshloginfile

为了测试这个:

echo $PBS_NODEFILE 
(cd $cdr && parallel --sshloginfile $PBS_NODEFILE -j20 'echo {} | ./vari_1st_imge' ::: *.DS0) 

如果GNU并行现在试图打开-j20那么很显然,这是空的。

+0

感谢您的回复,我尝试不使用--sshloginfile $ PBS_NODEFILE代码运行。你能建议我如何设置$ PBS_NODEFILE。现在错误显示,当我尝试使用上述:./down:行14:module:command not found parallel:Error:Can not open echo {} | ./vari_1st_imge。 – anu

+0

脚本找不到“并行”二进制文件。验证它在节点上的驻留位置(例如,运行交互式作业并搜索它,或者询问集群管理员),然后将完整路径放到二进制文件中,或者将路径添加到PATH环境变量中在脚本的开头。 。系统也可能已经被设置为使用'module'命令来包含它。 – clusterdude

+0

您的PBS管理员会知道为什么$ PBS_NODEFILE未设置。我自己从来没有使用过PBS系统,但我的印象是PBS通常自己设置这个变量。 –