在 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/

10-12 14:00