【发布时间】:2017-12-23 15:38:20
【问题描述】:
我正在学习本教程 Introduction to Machine Learning with R and caret (https://www.youtube.com/watch?v=z8PRU46I3NY) 并在 macOS 与 centOS 上并行运行 R 与 doSNOW 时获得不同的机器行为:
cl = makeCluster(4, type = 'SOCK')
registerDoSNOW(cl)
# build model
caret.cv = train(Survived ~ .,
data = titanic.train,
method = 'xgbTree',
tuneGrid = tune.grid,
trControl = train.control)
stopCluster(cl)
在 macOS 上运行时,它会创建 4 个进程,每个线程有 1 个线程,因此运行 4@>99%(xgbTree 在约 6 分钟内)。在 centOS 上,它创建 4 个进程,每个进程运行 24 个线程,因此总共 24@>99%(xgbTree 未完成 >>30 分钟)。即使只在 centOS 上创建一两个集群,所有线程都被使用并且服务器完全繁忙。
更新:当使用 doSNOW 集群运行非插入符号代码时,一切正常 - 每个进程运行 1 个线程,即使在 centOS 上也是如此。
我有什么遗漏吗? 我应该期望在这些系统上使用相同的脚本会有不同的行为吗?我是否需要指定一些东西才能在 centOS 上使用?
我对插入符号和并行 R 非常陌生,到目前为止,我已经读到 mac/linux 和 windows 之间只有更大的区别。
如果我能获得更多信息,请告诉我。 感谢您的帮助和建议。
在 centOS 60x+ 上的 htop: R --slave --no-restore ==file=/usr/lib64/R/library/snow/RSOCKnode.R --args MASTER=localhost PORT=11326 OUT=/dev/null SNOWLIB=/usr/lib64/R /图书馆
R 版本 3.3.2:x86_64-redhat-linux-gnu ; x86_64-apple-darwin13.4.0 / centOS 服务器:2 个插槽,每个 6 核,每个 2 线程 / macOS MBP:1/8/1
【问题讨论】:
-
是的,在 4 个集群上运行时,我得到 4 个进程,每个进程的 CPU 使用率约为 600%。所有 24 个线程的总使用率为 100%
-
对不起,你已经对此发表了评论......我很难过
标签: r machine-learning parallel-processing cpu-usage r-caret