如何将R脚本提交给作业调度程序:bash,compiler,Rscript或其他?

Dav*_*uer 2 compiler-construction r rscript

我的问题:

我有一个myscript.R使用配置文件的R脚本,例如config.xml,将这样的脚本提交给作业调度程序的最佳方法是什么(例如,使用qsub)?

我希望能够以与我使用相同的方式使用脚本和文件,例如嵌入在bash脚本中的C或Fortran可执行文件.

我目前如何使用FORTRAN:

下面是我使用编译的Fortran可执行文件的方法的示例,fex如下所示我将调用fscript.sh:

!#/bin/bash/
mpirun [arguments] "fex" -f $1
Run Code Online (Sandbox Code Playgroud)

以上内容fscript.sh可以发送到集群,其中包含读取配置文件的说明,如下所示:

qsub [arguments] fscript.sh 1 config.xml
Run Code Online (Sandbox Code Playgroud)

我目前如何以类似的方式使用R:

要以类似的方式运行R,我使用的是bash脚本 rscript.sh

#!/bin/bash
CONFIG=$1
env $CONFIG R --vanilla < myscript.R
Run Code Online (Sandbox Code Playgroud)

这可以在命令行运行,例如

qsub [arguments] rscript.sh config.xml
Run Code Online (Sandbox Code Playgroud)

哪里rscript.R包含类似的东西

library(XML)
config <- Sys.getenv("CONFIG")
config <- xmlList(xmlParse(config.xml))
myfunction(config)
Run Code Online (Sandbox Code Playgroud)

我的问题

  1. Rscript或编译器会提供比我目前使用的bash更强大的方法吗?
  2. 在哪种情况下哪一种比另一种更合适(利弊是什么)?
  3. 在这两种情况下,我如何传递配置文件?

到目前为止我做了什么

除了提出rscript.sh上面描述的bash脚本之外,我还阅读了教程和一些文档Rscript以及编译器,但我不清楚这些是否是一个优先于另一个的上下文.此外,还不清楚在任一上下文中传递配置文件的最佳方法.

这个问题与其他问题有关,例如,从R程序创建可执行文件的方法是什么,R编译器是否存在?.但是,我不认为使用编译代码是必不可少的.

Dir*_*tel 5

什么compiler与任何事情有关?它将R代码编译为R解释器的字节代码,因此它可能无法执行您怀疑的操作.

对于脚本,使用Rscript(随处可得),或利特勒(其中早RSCRIPT).

我们actally写道利特勒 明确这个脚本目的和我谈话"与简介R键HPC"(见演示页)实际上有提交此类脚本的例子SLURM调度器/资源管理器(我从来没有访问qsub).

这里还有许多与问题Rscript和命令行解析有关的问题.这应该让你开始.