Обращаясь к big.matrix от работников кластера
Я пытаюсь получить доступ к big.matrix (не с файловой поддержкой) из функции parLapply на компьютере с Windows. Однако R вызывает сбой при вызове big.matrix - "Перестал работать интерфейс R для Windows".
Нужно ли сначала прикреплять 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)
1 ответ
Решение
Вы хотите использовать 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)