F. *_*ivé 3 r parallel-foreach doparallel
在Linux计算机上,以下doParallel的小插曲,我使用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()
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?它不适用于Windows吗?
编辑:我知道如何以不同方式注册并行后端.目标是使用doParallel::registerDoParallel()一次注册(在加载我的包时),然后使用一个选项来更改使用的内核数量.这就是为什么我希望它也适用于Windows.
来自包装doParallel,Rich Calaway的维护者的答案:
Windows不支持分叉,这是并行(和doParallel)包使用"cores"参数的原因.因此,在Windows上,所有"核心"参数都设置为1.要在Windows上使用doParallel使用多个核心,请使用makeCluster创建多个工作集群cl,然后使用registerDoParallel(cl).
所以这不是一个错误,而是一个非Windows功能,这是一个遗憾.
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |