2016-06-09 121 views
0

我想從Windows機器上的parLapply函數訪問big.matrix(不支持文件)。但是,調用big.matrix時R會崩潰 - 「R for Windows前端停止工作」。從羣集工作人員處理big.matrix

我需要先附加big.matrix嗎?我該怎麼做呢?任何幫助,高度讚賞。

require(parallel) 
require(bigmemory) 

data <- matrix(rnorm(10^8),ncol=1000) 
data.big <- as.big.matrix(data) 

cl <- makeCluster(2) 

parLapply(cl,1:2,function(x,data.big){ 
    require(bigmemory) 
    data.big[x,1] # this line causes R to crash 
},data.big) 

stopCluster(cl) 

回答

3

您想使用attach.big.matrix來訪問共享內存。這是通過使用來自describe的信息完成的。以下應該工作。

datadesc <- describe(data.big) 

parLapply(cl,1:2,function(x,datadesc){ 
    require(bigmemory) 
    data.big <- attach.big.matrix(datadesc) 
    data.big[x,1] # this line causes R to crash 
},datadesc)