好问题。我知道你在说什么,我一直在思考这个问题。事实上,试图摆脱延迟是我drake
2019 年的两大优先事项之一。
不幸的是,drake
目前还没有一个解决方案可以让您使您的目标保持最新。长期的解决方案可能是速度改进 + https://github.com/ropensci/drake/issues/304 + https://github.com/ropensci/drake/issues/233。这些都是重要的发展领域,也是艰巨的任务。
对于新项目,您可以让每个目标成为拟合stan
模型的列表。
drake_plan(
data1 <- generate_data(...),
data2 <- generate_data(...),
models_data1 <- fit_models(data1),
models_data2 <- fit_models(data2)
)
fit_models <- function(data){
list(
run_stan(data, "normal_priors"),
run_stan(data, "t_priors")
)
}
对于图形可视化,支持目标集群。见https://ropenscilabs.github.io/drake-manual/vis.html#clusters
编辑:并行计算和冗长
如果你运行make(jobs = c(imports = 4, targets = 6))
,drake
将使用本地机器上的 4 个进程来进行预处理。并make(verbose = 4)
显示比默认设置更多的进度消息。