본문 바로가기
Programming/병렬프로그래밍

LAPACK설치

by 곰네Zip 2008. 7. 16.
LAPACK 및 LinAl 설치가이드 Programming

2006/07/06 00:47

복사 http://blog.naver.com/icupper/110006010054

LAPACK 및 LinAl 설치가이드
LAPACK은 오래전부터 축적되어온 Numerical Matrix Computations에 관련된 고성능의 라이브러리로, 타 유사 라이브러리의 모체가 될 정도로 유명하다.

그러나, LAPACK 자체는 함수이름등이 난해하여 (예를 들어, 무엇이 Inverse인지 등), 초보자가 사용하기에는 무리가 있다. LAPACK을 포장하여 사용하기 쉽게 작성된 여러가지 Wrapper들이 존재한다. 당연 Matrix 연산은 operator +, - 등을 지원하는 C++을 사용하는 것이 이상적일 것이다. 수많은 Wrapper를 조사해 본 결과 LinAl 라이브러리가 눈에 들어왔는데, 현재까지 SVD, linear system등을 해결하는데 아무런 불편함이 없었다.

LAPACK을 설치하는 과정을 정리해보았다. Wrapper인 LinAl은 통상적인 install 방법만 따르기 때문에, 몇 가지 주의사항만 언급하였다.

0. 다운로드

LAPACK을 다운로드 받을 수 있는 곳은 다음이다.

LAPACK 사이트

사실 이 사이트에서 [LAPACK Installation Guide]란에 가면 여기서 서술한 모든 내용을 다루고 있다.

이곳에서 lapack.tgz과 clapack.tgz를 모두 다운로드 받는다. clapack.tgz는 LAPACK이 Fotran77로 쓰여있기 때문에 이를 c로 wrapping하는 라이브러리인데, 우리는 어차피 더 편리한 Wrapper LinAl을 설치할 것이므로 다운로드 받지 않아도 된다. 혹시 더 세밀한 연산을 하고자 하거나, 자신만의 Wrapper를 만들고자 하는 이들은 clapack에서 시작해도 좋을 것이다.

또한, LAPACK에 기반한 다양한 서브프로그램을 포함하고 있는 BLAS도 함께 설치해야 한다. lapack.tgz에 blas가 포함되어 있지만, 확인해보고 BLAS디렉토리가 없다면, 다음 BLAS사이트에서 BLAS를 다운로드 받자.

BLAS 사이트

이곳에서 blas.tgz를 다운로드 받는다.


1. 압축 풀기.

LAPACK을 압축을 푼다.

압축 푼 디렉토리 이름을 LAPACK이라고 하자.

blas.tgz는 LAPACK에 들어가서 풀어야 한다.
이미 LAPACK에 BLAS디렉토리가 있다면, BLAS를 별도로 풀 필요는 없다.

2. make.inc 셋팅

LAPACK/INSTALL 디렉토리를 살펴보면, 각 OS별 make.inc파일이 있을 것이다. 이들 LAPACK/make.inc로 링크 시킨다.

사용하는 OS가 LINUX라고 하면 다음과 같이 하면 된다.

ln -s INSTALL/make.inc.LINUX main.inc

3. make (BLAS설치)

LAPACK디렉토리에서 make를 하기 전에

우선 LAPACK/BLAS/SRC에 들어가

make를 수행하여

LAPACK에 blas_LINUX.a를 만든다.

이는 LAPACK 설치과정에 필요한 라이브러리이기 때문에 선행되어야 한다.

4. make (LAPACK설치)

이제 LAPACK에서 make를 수행하여 라이브러리를 만든다.

5. 라이브러리 존재 확인

Local 디렉토리에 blas_LINUX.a lapack_LINUX.a가 있음을 확인한다. blas_LINUX.a는 과정 3에서 얻어진 것이고, lapack_LINUX.a과정에서 얻어진 것이다.

6. 수동 인스톨

make install하면 된다.

그러나, 테스트 결과 정상적 완료후에도 make install로 /usr/local등에 library에 라이브러리가 카피가 안된 경우가 많다. 아직 LAPACK 패키지들이 설치과정의 모든 예외를 자동으로 catch하지 못하는 듯 하다.

이러한 경우에는 수동으로 cp 등으로 해당 library경로에 카피를 해둔다. blas_LINUX.a와 lapack_LINUX.a를 각각 libblas.a liblapack.a로 shared library경로에 카피한다.

이상이 과정이 이상없이 수행되면 LAPACK설치가 끝난 것이다.

다음은 LinAl 설치인데, LinAl는 아래의 사이트에서 방문할 수 있다.

LinAl 사이트

현재는 다운로드 링크가 깨져있는 듯 하다. 다른 mirror들도 많이 있으므로 쉽게 구할 수 있을 것이다.

LinAl 설치과정은 통상 install과 비슷하므로 자세한 과정을 생략한다. 주의사항은 configure중에 blas_LINUX.a lapack_LINUX.a등의 library가 필요하다고 나올 때 이다.
이 경우에는 shared library경로 및 shared library내에 lapack과 blas라이브러리가 있는 지 확인해봐야 한다.

LinAl 하위 디렉토리에 예제 소스가 충분히 있으므로 이를 참조하면 자신이 원하는 Matrix 연산 코드를 쉽게 작성할 수 있다.
반응형

댓글