这个问题时隔两年,本 R 新手也稍微进步了一小丢丢。暂且撇开一楼原来的问题先不说,我现在遇到的问题也还是不知道怎么并行。实际上,“不知道怎么并行”分为两个问题。
问题一
背景是这样的,集群上面有7个节点可以给我用,由于平时负载不高,所以如果我会用的话,每个节点可以用50%的资源。但我不会……我现在在其中2个上面分别安装了 R 和 Rstudio Server,倒是可以手动并行,就是分别把数据导过去,然后分别手动执行代码。但我不知道应该怎么让2个或者说7个节点的资源同时为我所用。这一部分,俺一片混沌。
问题二
本来串行的算法应该怎么并行?比如逐步回归,比如 XGBoost 等。话说关于 XGBoost 如何并行这个问题,我拿去问了下新必应,它的答案是这样的:
正在搜索: R xgboost parallel computing example code
正在为你生成答案...
好的,我找到了一些网上的示例代码,你可以参考一下:
如果你想用XGBoost的nthread参数来实现隐式并行计算,你可以参考这个网站1上的代码,它展示了
如何用xqboost函数来训练一个二分类模型,并设置nthread为4。
如果你想用tune包和future包来实现显式并行计算,你可以参考这个网站2上的代码,它展示了如何用tune_grid函数来调整一个多分类模型的超参数,并设置control参数为control_grid(verbose=FALSE parallel_over = "everything”)。
如果你想用caret包和doParallel包来实现显式并行计算,你可以参考这个网站了上的代码,它展示了如何用train函数来训练一个回归模型,并设置method为"xgbTree",以及使用registerDoParallel函数来注册一个并行后端。希望这些代码对你有帮助。
了解详细信息: :1.r-bloggers.com 2. statology.org 3. xgboost.readthedocs.io