더북(TheBook)

BLAS, LAPACK 구현체 변경하기

리눅스에는 행렬 곱, 벡터 내적과 같은 선형 대수 연산을 수행하기 위한 시스템인 BLASBasic Linear Algebra System가 있으며 R은 이를 사용해 많은 연산을 수행한다. 리눅스에서 BLAS를 제공하기 위한 구현체로는 참조 구현체(libblas), ATLAS 구현체(libatlas), OpenBLAS 구현체(libopenblas) 등이 있다.2

참조 구현체란 BLAS를 이렇게 구현해야 한다는 것을 보여주기 위한 예시형 구현이고, OpenBLAS와 ATLAS는 BLAS 표준을 구현한 또 다른 구현체들이다. 이들은 개발팀이 다르지만 같은 기능을 제공하며 각자 최상의 속도를 목표로 하고 있는데, 실제 실행 환경에 따라 특정 구현체가 다른 구현체보다 빠른 속도를 보이기도 한다. 따라서 어떤 BLAS를 사용하는가에 따라 R의 실행 속도도 달라지기 마련이다.

LAPACKLinear Algebra Package은 BLAS 위에서 실행되는 고수준 선형 대수 라이브러리다. ATLAS 구현 등은 BLAS와 LAPACK을 모두 제공한다.

여기서는 BLAS, LAPACK을 선택하여 사용하는 방법을 설명한다.

우분투에서 제공하는 BLAS 구현체의 목록은 다음과 같은 명령으로 찾아볼 수 있다.

$ sudo apt-cache search --names-only libblas
libblas-dev - Basic Linear Algebra Subroutines 3, static library
libblas-doc - Basic Linear Algebra Subroutines 3, documentation
libblas3gf - Basic Linear Algebra Reference implementations, shared library
libatlas-base-dev - Automatically Tuned Linear Algebra Software, generic static
libatlas3gf-base - Automatically Tuned Linear Algebra Software, generic shared
libblas-test - Basic Linear Algebra Subroutines 3, testing programs
libopenblas-base - Optimized BLAS (linear algebra) library based on GotoBLAS2
libopenblas-dev - Optimized BLAS (linear algebra) library based on GotoBLAS2

2 BLAS에 대한 설명 및 구현체 목록은 http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms에서 볼 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.