我的问题:
我有一个myscript.R
使用配置文件的 R 脚本,例如config.xml
,将此类脚本提交给作业调度程序(例如,使用 qsub)的最佳方式是什么?
我希望能够以与我使用相同的方式使用脚本和文件,例如嵌入在 bash 脚本中的 C 或 Fortran 可执行文件。
我目前如何使用 FORTRAN:
以下是我使用已编译的 Fortran 可执行文件的方法示例,fex
如下所示fscript.sh
:
!#/bin/bash/
mpirun [arguments] "fex" -f $1
上面的内容fscript.sh
可以发送到集群,并带有读取配置文件的指令,如下所示:
qsub [arguments] fscript.sh 1 config.xml
我目前如何以类似的方式使用 R:
为了以类似的方式运行 R,我使用的是 bash 脚本rscript.sh
#!/bin/bash
CONFIG=$1
env $CONFIG R --vanilla < myscript.R
这可以在命令行运行,例如
qsub [arguments] rscript.sh config.xml
其中rscript.R
包含类似的东西
library(XML)
config <- Sys.getenv("CONFIG")
config <- xmlList(xmlParse(config.xml))
myfunction(config)
我的问题
- Rscript 或编译器会提供比我目前使用的 bash 更强大的方法吗?
- 在哪种情况下,一种比另一种更合适(优点和缺点是什么)?
- 在这两种情况下我将如何传递配置文件?
到目前为止我做了什么
除了提出上述 bash 脚本rscript.sh
之外,我还阅读了有关Rscript
和compiler的教程和一些文档,但我不清楚这些是否是一种优于另一种的上下文。此外,尚不清楚在任一上下文中传递配置文件的最佳方式。
这个问题与其他问题有关,例如,从 R 程序创建可执行文件的方法是什么,是否存在 R 编译器?. 但是,我认为这对于使用已编译的代码不是必需的。