Я пытаюсь получить длительный, смущающий параллельный анализ, используя снег и будущее для асинхронного запуска. Но ClusterFuture блокирует, упрощенный код ниже. Есть ли способ предотвратить блокировку ClusterFuture? Или я просто делаю что-то не так? Запуск R версии 3.5.3 в 64-битной Windows (а со временем и в Linux).
спасибо Марк
пробовал просто лаппли со снегом, и просто фьючерс. ClusterFuture с parLapply работает очень хорошо, время выполнения точно такое, каким оно должно быть (в 8 раз быстрее). Но он блокируется, и мне бы очень хотелось, чтобы он вел себя как обычное будущее (и возвращал управление консоли).
rm(list=ls())
RunNM2 <- function(index){
Sys.sleep(4)
return(index)
}
library(tictoc)
library(future)
library(snow)
cl <- future::makeClusterPSOCK(rep("localhost",8),makeNode =
makeNodePSOCK)
plan(cluster, workers = cl)
tic("cluster")
res.1 <- ClusterFuture(parLapply(cl,1:8,RunNM2),worker=cl )
##blocks here
res <- value(res.1)
toc()
stopCluster(cl)
rm(cl)