У меня есть один сценарий octave
, который вызывает сценарий R
для выполнения некоторых расчетов в кластере HPC. Процедура расчета следующая:
Отправьте задание в кластере, чтобы получить назначенный вычислительный узел, а затем распределите вычисления на каждый ЦП в этом узле. Часть сценария оболочки выглядит так
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
из командной строки, он работает нормально и отлично печатает желаемый вывод. Я пробовал много решений, которые мог найти в сети, но безрезультатно.
Кто-нибудь знает, что пошло не так? Спасибо за любое предложение!