使用doSNOW的并行处理出错

时间:2015-07-20 14:14:23

标签: r parallel-processing parallel-foreach

Error in { : task 1 failed - "invalid connection"

每当我尝试将所有4个内核用于并行进程时,为什么会出现此错误。

以下是示例代码:

NumberOfCluster <- 4
cl <- makeCluster(NumberOfCluster)
registerDoSNOW(cl)

fl<- file(file.choose(),"r") # file.choose() is going to locate a file(.tsv)                 
                             # of size 8 gb (RAM is 4 GB)

foreach(i=1:3) %dopar% {

  View(name_fil <- read.delim(fl,nrows = 1000000,header = TRUE))

}

1 个答案:

答案 0 :(得分:2)

您收到错误,因为无法将文件对象导出到工作人员。相反,您可以导出文件的名称并在每个工作人员上打开该文件:

fname <- file.choose()
foreach(i=1:3) %dopar% {
  fl <- file(fname, "r")
  View(name_fil <- read.delim(fl,nrows = 1000000,header = TRUE))
}

接下来使用View函数可能会遇到问题,但这应解决“无效连接”错误。