我正在尝试使用R中的parallel
包进行并行操作,而不是doSNOW
,因为它是内置的,显然这也是R项目想要的方式。但是我无法确定自己做错了什么。例如,考虑以下代码:
a <- rnorm(50)
b <- rnorm(50)
arr <- matrix(cbind(a,b),nrow=50)
aaply(arr,.margin=1,function(x){x[1]+x[2]},.parallel=F)
这很好,可以生成我两列的总和。但是如果我尝试引入parallel包:
library(parallel)
nodes <- detectCores()
cl <- makeCluster(nodes)
setDefaultCluster(cl)
aaply(arr,.margin=1,function(x){x[1]+x[2]},.parallel=T)
它抛出了错误。
2: In setup_parallel() : No parallel backend registered
3: executing %dopar% sequentially: no parallel backend registered
我初始化后端的方法有误吗?