r-将来指定多进程计划的惯用、灵活的方法是什么



我刚刚遇到了R包furr和future。我很想用它们来编写灵活的代码,如果在运行Windows或OSX的机器上可以使用多个内核的话。我希望"可用"内核的默认#类似于parallel::detectCores()-1,,而不是detectCores().。似乎plan(multiprocess)是实现这一点的简化、惯用方法,但它默认使用机器上的所有内核。我遇到了更明确的方法来指定"计划"。主要使用plan(multiprocess)的默认行为,但同时将核心数量限制为比detectCores()返回的内核数量少1的惯用方法是什么?

编辑根据@HernikB在上面的评论,我相信这个问题的合理答案应该是options(future.plan="multiprocess",mc.cores = parallel::detectCores() - 1L)

EDIT我发现这种方法经常不使用多进程计划(或者至少不与future_map_dfr并行),而它似乎可以。相比之下,

nc<-detectCores()-1 plan(strategy=multiprocess, workers=nc)

似乎是并行的。留下未回答的问题。

看看?future::multiprocess。你可以做:

plan(multiprocess(workers = 3))

如果你的计算机上有4个核心。r.

相关内容

  • 没有找到相关文章

最新更新