Мне интересно узнать больше о том, как furrr
находит что-то из глобальной среды, и вообще спрашивал о чёрных магах c, которые он выполняет. Вот конкретный c пример поведения, которое я не понимал и мог бы использовать некоторую помощь в: 1007 *?
# load furrr, describe "plan"
library(furrr)
nc<-2
plan(strategy = multiprocess, workers = nc)
# create objects
a<-list("A", "B", "C")
b<-list("D", "E", "F")
#works fine
future_map(1:5, function(foo){
map(c("a", "b"), function(my_object_name){
bar<-my_object_name
print(bar)
})
})
# object 'a' not found
future_map(1:5, function(foo){
map(c("a", "b"), function(my_object_name){
bar<-get(my_object_name)[[3]]
print(bar)
})
})
РЕДАКТИРОВАТЬ
Кажется, что эта проблема не воспроизводится во всех системах и может иметь отношение к моей установке furrr.
Несмотря на предупреждение, которое пакет дает о многоядерных планах, это проблема с multiprocess
и multisession
, но не plan(strategy=multicore,...
.