簡體   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