`map()` 的并行版本

1 parallel-processing r purrr tidyverse

我有一个需要多个参数的函数。

my_function <- function(list_of_vectors, list_of_scalars){
 ....
return(list)
}
Run Code Online (Sandbox Code Playgroud)

我想使用map()我的函数,但使用将使用多核的并行调用。my_function()计算量非常大,我需要调用它来创建超过 1000 个点的输出。(list_of_vectors是 1000 个向量的列表,list_of_scalars是 1000 个标量的列表)

是否有mcmap()等效的或任何其他的表述?我查看了其他线程,但没有一个解决了我的问题。

Ben*_*ker 5

您可以使用包装future_map()中的产品furrr作为直接替代品。

这是一个非常灵活的功能;它如何分配你的计算将取决于先前的调用future::plan()furrr构建在future包的顶部),例如

future::plan(multicore, workers = 4)
future_map(...)
Run Code Online (Sandbox Code Playgroud)

在同一台机器上的 4 个核心上运行您的作业。