R Параллельные вычисления: выберите, какие объекты будут распределены по ядрам

У меня вопрос, связанный с r-параллельными вычислениями. Я использую что-то вроде:

cl.tmp = makeCluster(10, type="SOCK")
registerDoParallel(cl.tmp)
AA <- foreach(i = 1:48, .inorder = TRUE, .combine = rbind, .verbose=TRUE) %dopar% {
# A function that depends on some selected objects in current environment
}
stopCluster(cl.tmp)

Как определить некоторые конкретные объекты в текущей среде, которые будут распределены по ядрам процессора и, таким образом, использоваться для некоторых функций? Мне не нужен R для копирования целых объектов окружения в разные ядра, а только некоторых выбранных объектов. В моем проекте у меня есть большие объекты R, и мне не нужно копировать / распределять их по ядрам, чтобы избежать проблем с оперативной памятью. Есть ли решение для этого?

Спасибо


person Ahmed El-Gabbas    schedule 13.08.2015    source источник
comment
Предполагая, что вы знаете, какие объекты должны быть экспортированы (это не совсем понятно из вашего вопроса), вы можете вставить что-то вроде clusterExport(cl.tmp, c(obj1, obj2, ...), globalenv()) в строке 2   -  person ChrKoenig    schedule 13.08.2015
comment
Спасибо .. я попробую это   -  person Ahmed El-Gabbas    schedule 14.08.2015


Ответы (1)


Взгляните на это: чтение глобальных переменных с помощью foreach в R

Только переменные, на которые есть ссылки внутри цикла foreach, копируются из глобальной среды.

person mattdevlin    schedule 13.08.2015