我有一个要在多个节点上执行的R代码(SLURM)。这是代码:
...
res<-foreach(i = seq_len(nrow(combs))) %dopar% {
G1 <- split[[combs[i,1]]]
G2 <- split[[combs[i,2]]]
bind <- cbind(data[,G1], data[,G2])
rho.i <- cor_rho(bind) #the function cor_rho I created
}
...
实际上,它是几个子矩阵的比较,在这些子矩阵中,我使用函数cor_rho计算了每个子矩阵之间的相关性。 我想在集群的一个节点上执行每个比较。
有帮助吗?
最佳
答案 0 :(得分:1)
您需要从bash脚本中调用R脚本,然后将其提交给SLURM,以请求一定数量的内核。
如果您的R代码在r_analysis.R
文件中,则可以这样创建submit_job.sh
文件:
#! /bin/bash
Rscript r_analysis.R
最后,您提交作业(例如从命令行),以请求一定数量的CPU(在此示例中为8个)和内存/ CPU(在此示例中为4G):
sbatch --mem-per-cpu=4G --cpus-per-task=8 ./submit_job.sh