Я использую пакет контрольных точек для анализа воспроизводимых данных.Некоторые из вычислений занимают много времени, поэтому я хочу запустить их параллельно.Однако при параллельном запуске контрольная точка не устанавливается на рабочих, поэтому я получаю сообщение об ошибке "нет пакета с именем xy" (потому что он не установлен в моем каталоге библиотеки по умолчанию).
Как я могу убедиться, что каждый работник использует версии пакета в папке контрольных точек?Я пытался установить .libPaths в коде foreach, но это, похоже, не работает.Я также предпочел бы установить контрольную точку / libPaths один раз в глобальном масштабе, а не в каждом вызове foreach.
Другим вариантом может быть изменение файла .Rprofile, но я не хочу этого делать.
checkpoint::checkpoint("2018-06-01")
library(foreach)
library(doFuture)
library(future)
doFuture::registerDoFuture()
future::plan("multisession")
l <- .libPaths()
# Code to run in parallel does not make much sense of course but I wanted to keep it simple.
res <- foreach::foreach(
x = unique(iris$Species),
lib.path = l
) %dopar% {
.libPaths(lib.path)
stringr::str_c(x, "_")
}
Ошибка в {: задача 2 не выполнена - "нетпакет называется 'stringr' "