glmulti - 多核选项?

时间:2016-12-14 20:54:08

标签: r glm rjava

我正在使用' R'图书馆" glmulti"并进行详尽的搜索。

相关代码:

local1.model <- glmulti(est, # use the model with built as a starting point
                        level = 1,  #  just look at main effects
                        method = "h",
                        crit="aicc") # use AICc because it works better than AIC for small sample sizes

变量&#34; est&#34;是一个合适的GLM,通知glmulti。

如果我是一个基于Java的程序,必须做几十万次同样的事情,那么我会使用多个核心。

我的glmulti没有有效地使用我的核心。

enter image description here

有没有办法将其切换为使用我的更多系统?

注意:当我使用&#39; h2o&#39;它可以最大化CPU并对内存产生强烈冲击。

1 个答案:

答案 0 :(得分:1)

R是单线程的(除非该函数是在具有自己的线程的库上构建的)。您可以使用rparallel库(它是核心R的一部分)手动向代码添加并行化:http://stat.ethz.ch/R-manual/R-devel/library/parallel/doc/parallel.pdf

我认为使用它是非常重要的。它在R之上是一个黑客,所以它会进行大量的内存复制,如果你关心效率,你需要考虑一下发生了什么。

glmulti看起来应该是平行的(即,即使使用遗传算法,每个参数组合也可以并行完成)。我的猜测是他们打算添加它,但开发停止了(自2009年9月以来没有更新)。