h2o初始化参数不是最优的

时间:2016-11-01 10:44:45

标签: r h2o

我的笔记本电脑有8GB内存,4核。

我的h2o版本如下,`

Package: h2o
Type: Package
Version: 3.10.0.8
Branch: rel-turing
Date: Mon Oct 10 13:47:51 PDT 2016
License: Apache License (== 2.0)
Depends: R (>= 2.13.0), RCurl, jsonlite, statmod, tools, methods, utils`

我将其初始化如下,

h2o.init(nthreads = -1,max_mem_size = "8g")

但我得到的输出如下,

R is connected to the H2O cluster: 
    H2O cluster uptime:         13 hours 21 minutes 
    H2O cluster version:        3.10.0.8 
    H2O cluster version age:    21 days, 13 hours and 33 minutes  
    H2O cluster name:           H2O_started_from_R_hp_ubq027 
    H2O cluster total nodes:    1 
    H2O cluster total memory:   1.33 GB 
    H2O cluster total cores:    4 
    H2O cluster allowed cores:  2 
    H2O cluster healthy:        TRUE 
    H2O Connection ip:          localhost 
    H2O Connection port:        54321 
    H2O Connection proxy:       NA 
    R Version:                  R version 3.3.1 (2016-06-21) 

为什么允许的内核只有2个且允许内存只有1.33gb而几乎8GB可用?

2 个答案:

答案 0 :(得分:2)

它说已经运行了13个小时。所以你看到的是一个已经运行的集群,并且(可能)以默认设置启动。

因此,在执行h2o.init()命令之前,您需要执行h2o.shutdown():

h2o.shutdown()
h2o.init(nthreads = -1,max_mem_size = "8g")

(请记住,当您关闭H2O时,所有模型和数据都会丢失,因此如果无法轻松重新创建任何模型和数据,请使用h2o.exportFile()和/或h2o.saveModel()

更新:我刚注意到你说你有一台8GB笔记本电脑?如果机器是专用的,我建议不要将超过90%的H2O分配给H2O,以确保操作系统,Flow网络服务器等有一些剩余部分。(EC2 scripts使用90%。)如果你打算在你的笔记本上做其他的东西(运行RStudio,检查电子邮件,在浏览器窗口中使用StackOverflow等)减去所有的内存。 (我的笔记本是8GB,还有我的通用机器,所以如果我认为我会制作很多型号,我通常会给H2O“4g”,否则就会“2g”或“3g”。)

答案 1 :(得分:0)

关于nthreads默认为2 - 据我所知,这是一个CRAN策略限制,这就是为什么它被设置为2而不是-1(推荐)。