我正在使用' 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没有有效地使用我的核心。
有没有办法将其切换为使用我的更多系统?
注意:当我使用&#39; h2o&#39;它可以最大化CPU并对内存产生强烈冲击。
答案 0 :(得分:1)
R是单线程的(除非该函数是在具有自己的线程的库上构建的)。您可以使用rparallel库(它是核心R的一部分)手动向代码添加并行化:http://stat.ethz.ch/R-manual/R-devel/library/parallel/doc/parallel.pdf
我认为使用它是非常重要的。它在R之上是一个黑客,所以它会进行大量的内存复制,如果你关心效率,你需要考虑一下发生了什么。
glmulti看起来应该是平行的(即,即使使用遗传算法,每个参数组合也可以并行完成)。我的猜测是他们打算添加它,但开发停止了(自2009年9月以来没有更新)。