我有一个octave
脚本调用R
脚本来对HPC群集进行一些计算。计算程序如下:
在群集上提交作业以分配计算节点,然后将计算分配给该节点中的每个CPU。 shell脚本的一部分看起来像这样
count=0
HOSTLIST=
for host in `cat $PBS_NODEFILE`
do
HOSTLIST[$count]=$host
count=$(($count+1))
done
...
...
...
mkdir case_$count
cd case_$count
export workdir=`pwd`
remotehost=${HOSTLIST[$pcount]}
ssh -n $remotehost "cd $workdir; export PATH=$PATH:$workdir; octave $MFILE > /dev/null" &
为简单起见,示例$MFILE
内容为
printf("Calling R script from Octave \n");
system('./hello_world.R');
hello_world.R
#!/usr/bin/Rscript
print("Hello World!")
运行时遇到错误
sh: ./hellow_world.R: /usr/bin/Rscript: bad interpreter: No such file or directory
我的一些环境变量(以防万一)
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/cuda/bin:/opt/ganglia/bin:/opt/ganglia/sbin:/usr/java/latest/bin:/opt/maven/bin:/opt/maui/bin:/opt/torque/bin:/opt/torque/sbin:/opt/pvfs2/bin:/opt/rocks/bin:/opt/rocks/sbin
$ which Rscript
/usr/bin/Rscript
$ which R
/usr/bin/R
如果我从命令行运行$MFILE
,它运行正常并打印所需的输出就好了。我尝试过很多我在网上找不到的解决方案
有谁知道出了什么问题?谢谢你的任何建议!