2016-06-09 11 views
0

Ich versuche, eine große.Matrix (nicht Datei gesichert) von einem ParLapply-Funktion auf einem Windows-Rechner zugreifen. Allerdings stürzt R beim Aufruf der big.matrix ab - "R für Windows-Frontend funktioniert nicht mehr".Adressierung einer großen.Matrix von Cluster-Arbeitern

Muss ich die big.matrix zuerst anhängen? Wie mache ich das? Jede Hilfe wird sehr geschätzt.

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) 

Antwort

3

Sie möchten attach.big.matrix verwenden, um auf den gemeinsamen Speicher zuzugreifen. Dies geschieht unter Verwendung der Informationen von describe. Folgendes sollte funktionieren.

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)