h2o 是在单节点集群中进行并行处理,还是仅在多节点集群中才开始并行处理?

Does h2o in a single node cluster do parallel processing or is it only in multi node cluster that parallel processing kicks in?

我们 运行 h2o 作为 AWS 内部的单节点集群:

R is connected to the H2O cluster: 
    H2O cluster uptime:         5 seconds 217 milliseconds 
    H2O cluster timezone:       Etc/UTC 
    H2O data parsing timezone:  UTC 
    H2O cluster version:        3.17.0.4153 
    H2O cluster version age:    10 months and 4 days !!! 
    H2O cluster name:           h2o-8ba55ebb-7d49-41bd-b4e2-d7be45b5f53e 
    H2O cluster total nodes:    1 
    H2O cluster total memory:   22.20 GB 
    H2O cluster total cores:    8 
    H2O cluster allowed cores:  8 
    H2O cluster healthy:        TRUE 
    H2O Connection ip:          localhost 
    H2O Connection port:        54321 
    H2O Connection proxy:       NA 
    H2O Internal Security:      FALSE 
    H2O API Extensions:         XGBoost, Algos, AutoML, Core V3, Core V4 
    R Version:                  R version 3.4.3 (2017-11-30) 

并从 java 开始使用 nthreads -1 的 h2o:

java -ea -Xmx25g -jar /path/to/h2o.jar -name unique-cloud-name 
     -ip localhost -ice_root /tmp/h2o-tmp -nthreads -1

我们想知道 h2o 是否使用单节点集群进行并行处理/使用所有可用和允许的内核。 当我们在命令行中执行 top -H 时,我们确实巧合地看到了 8 个活动的 java 进程,并且想知道它们是否来自 h2o 并且正在帮助生成我们的模型。

是的,H2O 将使用单个节点上的所有核心来训练一个模型。

nthreads 允许您显式设置线程池大小,以控制每个进程的并行度。