【发布时间】:2019-11-29 09:57:53
【问题描述】:
我通过 R 包使用 XGBoost,并且没有指定 nthread 参数(应该默认为可用内核的最大数量,它在 Ubuntu 中这样做)。
但是,在配备 i7-4770 CPU(4 核 = 8 线程)的 Windows PC 上,最多只有即使我手动设置nthread = 8,也达到了最大 CPU 级别的 50%(完全相同的代码在 Ubuntu 下使用 100% 的最大 CPU 级别,所以我认为这不是实现问题)。我还尝试了nthread = 4,这会导致大约 30% 的最大 CPU 使用率。
如何让 XGBoost 使用 Windows 下的所有可用线程?
【问题讨论】:
-
它确实在你的所有内核上运行,有点因为并行化是使用 cpp 完成的,它不会像直接在 R 中并行化时那样预定 100% 的处理器。
-
@JacobJacox 所以在 Linux 中它之所以有效,是因为 OS / cpp 处理并行处理的方式不同?
-
你问我太多了 :) 我在 r 中手动并行化 rf 或在 rcpp 中编写我自己的时注意到了这一点。
标签: r windows parallel-processing xgboost