2013-05-09 10 views
4

대형 스파 스 매트릭스 (17k x 2m)에서 svd()을 R로 실행하고 클러스터에 액세스 할 수 있습니다. 여러 코어를 사용하여 R에서 SVD를 계산하는 간단한 방법이 있습니까?여러 코어를 사용하여 SVD 계산하기

RScaLAPACK 패키지 (http://www.inside-r.org/packages/cran/RScaLAPACK)가 가능할 것으로 보이지만 더 이상 적극적으로 지원되지 않는 것 같습니다 (http://cran.r-project.org/web/packages/RScaLAPACK/). 이유가 있다고 가정합니다.

답변

1

rARPACK은 필요한 패키지입니다. 매력처럼 작동합니다 (매트릭스가 사용자 사양보다 훨씬 큽니다). 그것은 C와 C++를 통해 병렬 처리하기 때문에 Superfast입니다.

1

rARPACK은 하나의 선택이지만 최적화 된 멀티 코어 BLAS 라이브러리는 모든 병렬 컴퓨팅 부분이 rARPACK 자체가 아니라 BLAS에 있기 때문에 사용해야합니다. rARPACK 단지 그것만 k 큰 특이 값과 관련된 특이 벡터를 산출 의미 PARTIAL SVD를 계산하는

또한주의. 전체 SVD가 필요한 경우에도 svd()을 사용할 수 있습니다.

+0

거의 모든 BLAS는 미리 컴파일 된 것들 (예 : Ubuntu의 기본값)으로 시작해야하고, 튜닝하는데 많은 시간이 필요합니다. – isomorphismes