我一直在使用 R 中的doRedis包来尝试在集群上运行一些代码。我有一台 Windows 机器和一台运行 Ubuntu 的机器(这是安装 redis 的地方)。
我可以愉快地运行 doRedis 文档中的示例,但我的目标是能够将 doRedis 与插入符号一起用于某些机器学习应用程序。我的理解是插入符号允许并行化,似乎其他人已经让它工作了,但对于我的生活,我无法弄清楚我哪里出错了。
我找到了这个例子并将其稍微修改为以下内容:
library(caret)
library(doRedis)
dat = iris
registerDoRedis("jobs",
host = "xyz")
xgb.grid = expand.grid(nrounds = c(10, 200),
max_depth = c(6),
eta = c(0.05),
gamma = c(0.01),
colsample_bytree = 1,
min_child_weight = 1,
subsample = 1)
ctrl = trainControl(method = 'cv',
number = 10,
verboseIter = F,
allowParallel = T)
set.seed(13)
xgb1 <- train(Species ~ .,
data = dat,
method = "xgbTree",
trControl = ctrl,
verbose = F,
tuneGrid = xgb.grid)
removeQueue("jobs")
这仅在本地计算机上运行,并且不会分发到 redis 队列(我可以使用doRedis::jobs()
以及redis-cli --stat
在 Ubuntu 终端中运行来查看它,两者都显示没有作业被传递到服务器)。
我错过了什么?