我已经在两台本地计算机上运行了两个H2O集群。一个正在运行Windows 10,具有8个内核和16 gb RAM,另一个正在运行Ubuntu,具有4个内核和8gb RAM。我同时使用nthreads = 4和Xmx5g参数运行,因此它们各自的性能相当,总体上我没有任何问题,因为我的数据集并不庞大,而且我经常运行h2o.removeAll()。我在R环境中使用它们。
今天,我决定尝试将它们连接到一个群集中,希望该群集的性能与单独运行时的总性能大致相同。
运行jar时,我制作了一个包含IP地址的flatfile.txt,并在参数中添加了群集的通用名称。这两台机器上的粗略目录不同,但其余部分都相同:
java -Xmx5g -jar D:\H2O\h2o.jar -flatfile D:\H2O\flatfile.txt -port 54321 -name whooshin
当然,我得到的消息是“大小为2的云”已形成。在R的Windows计算机上,我已经运行了
h2o.init(nthreads = 4, startH2O = FALSE)
现在,当我运行以前使用的AutoML脚本时,性能简直太糟糕了。在任何一台计算机上运行的较早版本的AutoML大约需要80秒。我实际上并没有等待这次完成,但是我可以告诉您这次可能要花费几个小时。我确定我做错了什么,虽然不是这样,但我不知道出什么问题了。我的AutoML设置如下:
aml <- h2o.automl(y = "Result", training_frame = as.h2o(training_set),
max_runtime_secs = 3600, nfolds = 10, max_models = 400,
stopping_metric = "logloss", stopping_tolerance = 0.05, stopping_rounds = 7, seed = -1,
exclude_algos = c("DeepLearning"),
sort_metric = "logloss")
我想到的唯一可能的原因是Windows计算机通过wifi连接到本地网络。我不知道这是否可能是潜在原因,但我不希望出现如此巨大的性能影响。
我还注意到的另一件事是,在我的Ubuntu计算机上,在终端窗口中,运行AutoML时看不到任何情况,但是我怀疑这就是我在Flow中检查时的样子群集状态我可以看到两个节点的RAM使用率都在缓慢上升,所以我猜两个都被使用了。
我不确定该怎么办,将不胜感激。我对此很陌生,所以也许我错过了一些重要的东西。
编辑:我尝试通过有线而不是wifi连接Windows计算机,但这没什么区别。