从 R 取消限制 CPU 使用率



有没有办法取消限制CPU使用率,以便我的PC投入更多精力快速完成任务?目前,k-means算法估计将在大约10天内完成,这是我想减少的。

R 默认是单线程的,并且只在 CPU 上的单个线程上运行,如果你有一台有 16 或 32 个内核的机器,那就太可惜了。通过取消限制 CPU 使用率,我必须假设您正在询问是否有任何方法可以让 R 进程(假设 k -means 算法的一部分)通过并行运行进程来利用您的全部 CPU 能力。

但是,并行处理不会帮助许多R包和进程。因此,您的特定问题的技术解决方案取决于您正在使用的包实现。像caret这样的流行包在可能的情况下确实支持并行化,即使你可能需要添加额外的allowParallel=T参数。它们与库(如doMC)协同工作,以允许多核进程。在下面的示例代码中,我让我的机器通过registerDoMC(8)函数使用 8 个内核,然后设置allowParallel=T

library(doMC)
registerDoMC(8)
system.time({
ctrl_2 <- trainControl(method="cv", number=3, allowParallel=T)
fb_forest_2 <- train(classe ~ ., data=fb_train, method="rf", trControl = ctrl_2)  
})

同样,并行处理并不总是有帮助 - 并非所有进程都可以并行化!foreach的文档很好读,所以如果你能负担得起时间,看看它。问题的特定代码解决方案还取决于您使用的库实现。

最新更新