【发布时间】:2018-11-12 05:11:27
【问题描述】:
我想知道如何使用Rscript 函数在R 中运行500 个并行作业。我目前有一个顶部有标题的R 文件:
args <- commandArgs(TRUE)
B <- as.numeric(args[1])
Num.Cores <- as.numeric(args[2])
在 R 文件之外,我希望通过 B 指定的 500 个作业中的哪一个要运行。另外,我想控制每个作业可用的内核/CPU 数量Num.Cores。
我想知道是否有软件或指南可以做到这一点。我目前有一个 CentOS 7/Linux 服务器,我知道一种方法是安装 Slurm。但是,这很麻烦,我想知道是否有办法通过队列执行 500 个作业。谢谢。
【问题讨论】:
-
问题太宽泛了。我会采用的最简单的解决方案:使用
future进行并行化;将您的作业分成N大小为X的批次(X一次可以执行多少个作业)。使用两个循环进行迭代 - 内部在多个作业上并行化,外部用于批处理。 -
控制核心数量并不是 R 擅长的(我相信)。也就是说,它要么使用 1,要么使用尽可能多的(当矩阵库允许时),仅此而已。这需要在 R 外部进行,无论是使用
cpulimit还是某种虚拟机。
标签: r parameter-passing cluster-computing hpc slurm