我知道自版本2.14.0起的R附带了parallel
包,
所以你可以这样做:
library(parallel)
cl <- makeCluster(2) # parallelize by 2
res <- clusterApply(cl,1:20,
function(x)
{
# long stupid elaboration...
currmean <- 0
count <- 0
for(a in 1:100){
for(b in 1:100){
for(c in 1:100){
currmean <- currmean + 1/(count+1) * (x - currmean)
count <- count + 1
}
}
}
return(currmean)
}
)
问题是以下方法(至少在Windows上)需要防火墙权限,因为它为每个群集打开一个套接字,但这有时是不可能或困难的(例如在某些生产环境中)。
是否存在不需要防火墙权限的备用程序包/方式,例如依赖于线程的内容?