我正在 tidymodels 中使用 ranger 调整一些随机森林模型。我有一个包含许多列的相当大的数据集。因此,我使用Danny Foster 的文章:R on Digital Ocean中的说明设置了一个用于调整/训练的数字海洋液滴。我用来训练模型的系统在 Intel 硬件上运行,有 32 个内核和 64gb 内存。
我在调优之前使用以下命令来实现并行处理:
doParallel::registerDoParallel(cores=28)
set.seed(345)
tune_res <- tune_grid(
tune_wf,
resamples = figs_folds,
grid = 10
)
当我使用 htop 命令查看系统上的处理时,我看到 32 个内核中的 17 到 18 个一直在使用中。这个数字似乎与 DoParallel 文档一致,即如果未指定内核,则使用 50% 的内核。我认为 2 个核心被留作其他职责,而我的模型正在使用 16 个。
因此,我指定要使用的核心数量的方式似乎有问题。
doParallel::registerDoParallel(cores=28)
我应该如何指定在 DoParallel 中使用的核心数。
编辑更新:当我从调整随机森林模型切换到训练逻辑回归时。使用了所有内核和更多可用内存。这是来自逻辑回归模型训练的 htop 图像:
如您所见,所有内核均已使用,大约 46 GB 的 RAM。这是否表明不同的模型可以以不同的方式利用内核。