是否可以使用--array
选项作为参数?我的意思是,我在使用数组的地方有一个R代码。数组的数量取决于执行R代码的文件。我想将数组的数目作为参数传递到sbatch my_code.R
命令行中,以便从不修改我的Slurm代码:例如,对于具有550.000列的文件,我将需要10个数组,一个具有1.000的文件.000列将需要19个数组,等等。我必须得到类似“ sbatch --array 1-nb_of_arrays_needed my_code.R”的内容。目的是使我的代码可供所有人使用,而无需用户更改代码#SBATCH --array=x-y
我的R代码(我没有完整显示):
data<-read.table(opt$file, h=T, row.names=1, sep="\t")+1
ncol=ncol(data)
nb_arrays=ncol/55000
nb_arrays=round(nb_arrays)
opt$number=nb_arrays
...
最佳
答案 0 :(得分:0)
您的R脚本仅在计划作业后才启动。要进行计划,必须提交它,并且要提交,它必须知道--array
的参数。
因此,您有两种选择:
将R脚本分成两个部分:一部分将在提交作业之前运行,另一部分将在作业启动时运行。第一部分将计算阵列中必要的作业数(并可能自动提交作业阵列),而第二部分将进行实际计算。
如果只希望使用一个R脚本,则可以根据环境中是否存在SLURM_JOB_ID
变量来区分行为。如果不存在,则计算作业数,然后提交(如果存在),进行实际计算。
另一种选择是将提交作业中的--array
设置为一个较大的值,并且当数组中的第一个作业开始时,它将计算所需的作业数,并取消多余的作业。 / p>