我正在使用foreach
包来并行运行我的代码。虽然它适用于“小”数据集,但它无法运行更大的数据集。更具体地说,它抛出了这个错误:
序列化错误(数据,节点$ con):写入连接错误
这是我的代码:
library(foreach)
library(doParallel)
library(iterators)
numCores = detectCores() - 1
clm = makePSOCKcluster(numCores)
registerDoParallel(clm)
results = foreach(i = 1:1000) %dopar% {
myFunction(i, otherArguments)
}
stopCluster(clm)
在运行时,我注意到在任务管理器中,在程序停止之前内存几乎达到100%。我尝试使用不同数量的内核并尝试设置memory.limit()
,但没有系统地设置,问题仍然存在。我的问题是什么?如何解决?
计算机:Windows 10 64位,28 GB Ram,CPU 8核,R3.2.2(64位)
我知道类似的内容已发布here,但问题尚未解决。