嵌套的Furr::未来地图?

嵌套的Furr::未来地图?,r,furrr,R,Furrr,是否有一种方法可以配置furr::future\u map以允许嵌套用例?考虑下面的代码: library(furrr) library(tictoc) # The problem is easier to reason about if you take N # smaller than your number of cores, and M big. N = 2 M = 100 plan(sequential) tic() x = future_map(1:N, function(i)

是否有一种方法可以配置
furr::future\u map
以允许嵌套用例?考虑下面的代码:

library(furrr)
library(tictoc)

# The problem is easier to reason about if you take N
# smaller than your number of cores, and M big.
N = 2 
M = 100

plan(sequential)
tic()
x = future_map(1:N, function(i){
  furrr::future_map(1:M,function(j){
    Sys.sleep(1/M)
    return(1)
  })
})
toc() # 2sec + overhead

plan(multiprocess)
tic()
x = future_map(1:N, function(i){
  furrr::future_map(1:M,function(j){
    Sys.sleep(1/M)
    return(1)
  })
})
toc() # one sec + overhead !!
第一个应该需要2秒多一点。这没关系。但是,即使在一台千芯的机器上,有没有办法让第二台不到1秒

我的用例如下:一些子任务需要比其他子任务更长的时间来完成,当一些子任务完成时,一些核心可以自由地进一步释放更长的任务

但Furr在默认情况下不会这样做,lnger运行的任务最终只在一个内核上完成。该问题与上面代码中显示的问题相同:如果某些内核是空闲的,有没有办法让Furr重新分派内部任务?

这是不可能做到的,还是我错过了一个参数来支持未来的调用?

请参阅。请参阅。