升级至R 4.4后嵌套Futures创建时parallelly报错求助
临时解决办法
针对你遇到的parallelly 1.38版本在嵌套并行场景下的核心检查报错问题,可以尝试以下几种临时方案:
调整parallelly的CPU负载限制
通过修改parallelly的全局选项,放宽核心使用的硬限制或指定可用核心数:# 直接指定当前进程可用核心数为5,绕过检查逻辑 parallelly::setParallellyOption("mc.cores", 5) # 或者提升CPU负载的硬限制(比如设为500%) parallelly::setParallellyOption("cpu.hardlimit", 5)设置后再运行你的嵌套并行代码即可。
在内层multisession计划中显式指定mc.cores参数
修改内层的tweak配置,直接传入mc.cores参数覆盖检查:plan(list(tweak(multisession, workers = 4), tweak(multisession, workers = 5, mc.cores = 5)), gc = TRUE)暂时降级parallelly包
如果不需要新版本的功能,可以将parallelly降级到之前能正常运行的1.34版本:install.packages("https://cran.r-project.org/src/contrib/Archive/parallelly/parallelly_1.34.0.tar.gz", repos = NULL, type = "source")
补充说明
这个问题大概率是parallelly 1.38版本对嵌套并行场景下的可用核心计算逻辑做了调整,外层的multisession worker会限制内层进程的核心感知数量,导致触发了新增的CPU负载保护机制。你可以在future或parallelly的官方代码仓库提交issue,帮助开发者修复这个兼容性问题。
内容的提问来源于stack exchange,提问作者Horstenson
相关产品推荐
相关产品推荐

