【发布时间】:2017-01-06 22:11:12
【问题描述】:
我想在集群(大学服务器)上并行运行 randomForest,我可以同时保留 4 个节点,每个节点还包含 12 个核心。我使用了 foreach 包描述中提到的 foreach 和 doSNOW 包,但是通过使用以下代码,我可以看到所有负载仅在第一个节点上,而对于其他 3 个节点,没有内存消耗。有人可以指导我如何编辑此代码,以便每个节点的每个核心都可以完成相同的工作,然后我们将其合并到 1 个森林中。
> library("foreach")
> library("doSNOW")
> registerDoSNOW(makeCluster(48, type="SOCK"))
> x <- matrix(runif(500), 100)
> y <- gl(2, 50)
> rf <- foreach(ntree = rep(22, 48), .combine = combine, .packages = "randomForest") %dopar%
+ randomForest(x, y, ntree = ntree)
> rf
Call:
randomForest(x = x, y = y, ntree = ntree)
Type of random forest: classification
Number of trees: 1056
【问题讨论】:
-
您是否使用批处理排队系统(例如 Torque、LSF 或 Slurm)来请求四个节点?
-
下面的答案很好,但我想补充一点,您应该与您的大学集群管理员交谈。他们将能够以最佳方式为您的特定集群提供帮助。
标签: r parallel-processing cluster-computing random-forest parallel.foreach