1

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

未来等待第一个调用包装,然后发送下一个。我如何告诉未来它可以同时向远程发送多个作业?

这显然是可能的,因为我可以从不同的本地 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 }
4

1 回答 1

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改用。

于 2018-04-13T18:05:43.273 回答