2015-07-20 26 views
0

Error in { : task 1 failed - "invalid connection"錯誤並行過程中使用doSNOW

爲什麼我得到這個錯誤,每次當我嘗試使用所有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)) 

} 
+0

'View'是一個用於查看UI內數據的rstudio函數。想要在集羣內的單獨進程上運行的代碼中調用它似乎有點奇怪。另外,你的外觀似乎只是平行讀取同一個文件3次,這又是一次奇怪的並行化。 –

回答

2

你得到一個錯誤,因爲文件中的對象不能導出到工人。相反,你可以導出的文件的名稱,並打開該文件在每個工人:

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

您可能會遇到使用旁邊的View功能有問題,但這應該解決「無效的連接」的錯誤。