用于使用qsub R的子作业循环

时间:2014-08-12 08:12:32

标签: r qsub

我正在尝试使用R --vanilla运行subjobs(每个染色体一个)。由于每条染色体都是独立的,我希望它们在系统中并行运行。我写了以下脚本:

#!/bin/bash
for K in {20..21};
do 
qsub -V -cwd -b y -q short.q  R --vanilla --args arg1$K arg2$K arg3$K < RareMETALS.R > loggroup$K.txt; done

但不知何故,R以交互方式打开而不是在命令行中打开...当尝试脚本本身时

R --vanilla --args arg1 arg2 arg3 < RareMETALS.R > loggroup.txt; done

它可以完美地调用脚本。

有些人可以指导我,或指出哪个可能是问题。

1 个答案:

答案 0 :(得分:0)

我对此的看法是使用echo而不是--args选项将参数传递给脚本。我发现将脚本和Grid Engine代码分开是比较简单的:

for K in {20..21};
do 
    echo "Rscript RareMETALS.R arg1$K arg2$K arg3$K > loggroup$K.txt" | qsub -V -cwd -q short.q
done

正如其他人评论使用Rscript

代码对我来说似乎更清晰,但使用echo而不是--args我可能会有一些限制我不知道。