Обращаясь к 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)
Другие вопросы по тегам