2016-12-14 5 views
1

'R'라이브러리 "glmulti"를 사용하고 철저한 검색을 수행하고 있습니다.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 

변수 "동부 표준시는"glmulti을 알리는 장착 GLM입니다.

동일한 작업을 수십만 번 수행해야하는 Java 기반 프로그램 인 경우 둘 이상의 코어를 사용합니다.

glmulti가 내 코어를 효율적으로 사용하고 있지 않습니다.

enter image description here

내 시스템의 이상 사용할 수 있도록로 전환 할 수있는 방법이 있습니까?

참고 : 'h2o'를 사용하면 CPU를 최대한 활용하고 메모리를 대폭 늘릴 수 있습니다.

답변

1

R은 단일 스레드입니다 (함수가 자체 스레딩이있는 라이브러리에 빌드되지 않은 경우). rparallel 라이브러리 (코어 R의 일부인)를 사용하여 수동으로 코드에 병렬 처리를 추가 할 수 있습니다. http://stat.ethz.ch/R-manual/R-devel/library/parallel/doc/parallel.pdf

사용하기에별로 중요하지 않은 클래스로 사용합니다. R의 상단에있는 약간의 해킹이기 때문에 많은 메모리 복사를 수행합니다. 효율성에 관심이 있다면 무슨 일이 일어나는지 생각해 봐야합니다.

glmulti은 평행해야합니다 (예 : 유전자 알고리즘을 사용하는 경우에도 매개 변수의 각 조합을 병렬로 실행할 수 있음). 내 추측은 추가하려는 의도 였지만 개발이 중단되었습니다 (2009 년 9 월 이후 업데이트 없음).