相关疑难解决方法(0)

如何让R使用计算机的所有核心?

我已经读过R只使用一个CPU.如何让R使用所有可用的内核来运行统计算法?

parallel-processing multicore r

14
推荐指数
2
解决办法
9630
查看次数

R foreach:从单机到集群

以下(简化)脚本在unix集群的主节点(4个虚拟核心)上正常工作.

library(foreach)
library(doParallel)

nc = detectCores()
cl = makeCluster(nc)
registerDoParallel(cl)

foreach(i = 1:nrow(data_frame_1), .packages = c("package_1","package_2"), .export = c("variable_1","variable_2"))  %dopar% {     

    row_temp = data_frame_1[i,]
    function(argument_1 = row_temp, argument_2 = variable_1, argument_3 = variable_2)

}

stopCluster(cl)
Run Code Online (Sandbox Code Playgroud)

我想利用集群中的16个节点(16 * 4总共虚拟核心).

我想我需要做的就是更改指定的并行后端makeCluster.但是我应该怎么做呢?文档不是很清楚.

基于这个相当古老的(2013年)帖子http://www.r-bloggers.com/the-wonders-of-foreach/,似乎我应该更改默认类型(sock或者MPI- 哪个可以在unix上工作? )

编辑

来自foreach作者的这个小插图:

默认情况下,doParallel在类Unix系统上使用多核功能,在Windows上使用snow功能.请注意,多核功能仅在一台计算机上运行任务,而不是在一组计算机上运行.但是,您可以使用snow功能在群集上执行,使用类Unix操作系统,Windows甚至组合.

什么you can use the snow functionality意思?我该怎么办?

parallel-processing r cluster-computing parallel-foreach snow

7
推荐指数
1
解决办法
3248
查看次数