我执行以下操作将一堆模型发送到计算服务器。
在下一次发送之前,将等待第一次调用。我怎么告诉未来它可以同时向遥控器发送多个作业?
这显然是可行的,因为我可以从不同的本地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 }
答案 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
。