繁体   English   中英

在HPC群集上从八度调用R脚本时出错

[英]Error calling R script from octave on HPC cluster

我有一个octave脚本,该脚本调用R脚本在HPC群集上进行一些计算。 计算过程如下:

  1. 在群集上提交作业以分配计算节点,然后将计算分配到该节点中的每个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" & 
  2. 为简单起见,示例$MFILE内容为

     printf("Calling R script from Octave \\n"); system('./hello_world.R'); 
  3. hello_world.R

     #!/usr/bin/Rscript print("Hello World!") 
  4. 运行时遇到错误

     sh: ./hellow_world.R: /usr/bin/Rscript: bad interpreter: No such file or directory 
  5. 我的一些环境变量(以防万一)

     $ 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 ,它可以正常工作,并且可以正常打印所需的输出。 我尝试了许多我无法在网上找到的解决方案

有人知道出了什么问题吗? 感谢您的任何建议!

问题是R已加载到登录节点上,但未加载到计算节点上。 因此,在作业提交脚本中,必须先执行一行以加载R然后再进行任何计算。 例如:

    module load r/3.4.3

在这里这里看到更多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM