我在学习这个教程
带R和caret的机器学习简介
(
https://www.youtube.com/watch?v=z8PRU46I3NY
)与centOS相比,在macOS上与doSNOW并行运行R时,会获得不同的机器行为:
cl = makeCluster(4, type = 'SOCK')
registerDoSNOW(cl)
caret.cv = train(Survived ~ .,
data = titanic.train,
method = 'xgbTree',
tuneGrid = tune.grid,
trControl = train.control)
stopCluster(cl)
在macOS上运行时,它会创建4个进程,每个线程1个,因此运行4@>99%(xgbTree约6min)。在centOS上,它创建了4个进程,每个进程运行24个线程,因此总共24@>99%(xgbTree未完成>30min)。即使只在centOS上创建一个或两个集群,也会使用所有线程,服务器完全繁忙。
更新:当使用doSNOW集群运行非插入符号代码时,一切都很好-每个进程运行1个线程,即使在centOS上也是如此。
我丢了什么?
如果我能为你提供更多信息,请告诉我。
谢谢你的帮助和建议。
centOS 60x+上的htop:
R—从—无还原==文件=/usr/lib64/R/library/snow/RSOCKnode。R—args MASTER=localhost PORT=11326 OUT=/dev/null SNOWLIB=/usr/lib64/R/library
R版本3.3.2
:x86_64-redhat-linux-gnu;x86_64-apple-darwin13.4.0/
centOS服务器
: 1/8/1