在 Linux 计算机上,在 doParallel's vignette 之后,我使用 doParallel::registerDoParallel()
,然后使用 options(cores = N)
,其中 N
是我想与 foreach
一起使用的内核数。
我可以使用 foreach::getDoParWorkers()
验证,当我更改选项 cores
时,它会自动更改 foreach
使用的内核数。
然而,在 Windows 10(最新版本的 R 和软件包)上,此选项似乎没有任何影响,因为更改其值不会更改 foreach::getDoParWorkers()
的值(在调用 3
时在 doParallel::registerDoParallel()
处初始化)。
可重现的例子:
doParallel::registerDoParallel()
options(cores = 1)
foreach::getDoParWorkers()
options(cores = 2)
foreach::getDoParWorkers()
options(cores = 4)
foreach::getDoParWorkers()
这是一个错误吗?它不能在 Windows 上工作吗?
编辑: 我知道如何以不同的方式注册并行后端。目标是使用
doParallel::registerDoParallel()
注册一次(在我的包加载时),然后使用一个选项来更改使用的内核数。这就是为什么我希望它也能在 Windows 上运行。 最佳答案
doParallel 包维护者 Rich Calaway 的回答:
所以这不是一个错误,而是一个非 Windows 功能,这是一个遗憾。
关于r - 来自软件包 doParallel 的选项 "cores"在 Windows 上没用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45819337/