未来等待发送到远程时的前一个未来

时间:2018-04-12 12:19:52

标签: r parallel-processing future r-future

我执行以下操作将一堆模型发送到计算服务器。

在下一次发送之前,将等待第一次调用。我怎么告诉未来它可以同时向遥控器发送多个作业?

这显然是可行的,因为我可以从不同的本地R会话向同一个遥控器发送多个作业,或者如果我在呼叫之间再次呼叫plan(login)。但是如何指定拓扑结构,以便将来不会等待,我不必重复调用plan

library(future) 
login <- tweak(remote, workers = "me@localcomputeserver.de")
plan(list(login))
bla %<-% { bla <- rnorm(1000); Sys.sleep(100); saveRDS(bla, file="bla.rds"); bla}
bla2 %<-% { bla2 <- rnorm(1000); Sys.sleep(100); saveRDS(bla2, file="bla2.rds"); bla2 }

1 个答案:

答案 0 :(得分:1)

未来作者:如果您对远程计算机上单独的 R进程感到满意,可以使用:

library("future")
remote_machine <- "me@localcomputeserver.de"
plan(cluster, workers = rep(remote_machine, times = 2L))

在同一台机器上安装两个远程工作人员。这样你就可以同时拥有两个活跃的未来而不会阻塞。

仅供参考,plan(remote, ...)基本上只是plan(cluster, persistent = TRUE, ...),其中“持久”意味着R变量在多个未来调用中存在于工作者身上;你很少想这样做 - 所以请改用cluster