과꾸로

[Octopus] 설치하기. TDDFT 계산 프로그램. 본문

연구자료

[Octopus] 설치하기. TDDFT 계산 프로그램.

(gguro) 2016. 7. 11. 14:57

[Octopus] 설치하기. TDDFT 계산 프로그램.



http://www.tddft.org/




Time-Dependent Density Functional Theory (TDDFT) 계산 프로그램인 Octopus를 Ubuntu Virtual Box 에다가 설치하는 방법을 적어둔다.



1. 

설치방법 설명서를 따라 설치한다. (설명서 위키)


 $ tar xzf octopus-5.0.1.tar.gz 

 $ cd octopus-5.0.1

 $ ./configure

 $ make

 $ make install


압축풀고, 늘 하듯이 (1) ./configure, (2) make, (3) make install 하라는 말임.


흐흐.



2. 

Fortran 90 compiler에서 막혀서 못 하고 있음. ㅋㅋㅋㅋ ㅡㅡ;;;


어쩔까 하다가 어디서 찾아보니 gfortran을 깔면 된다고 함.


$ sudo apt-get install gfortran 


gfortran을 깔아서 해결했는데

이번에는 다른 라이브러리가 없다고...


configure: error: Could not find required libxc library


TDDFT에서만 쓰는 특별한 라이브러리인 것 같다. 그래서 내려받음. (http://www.tddft.org/programs/octopus/wiki/index.php/Libxc_3.0.0


그래서 libxc를 받고 설치했더니 


$ ./configure
$ sudo make

이번엔 이런 에러 메세지가 뙇! 

make: Warning: File 'Makefile' has modification time 10 s in the future
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/bash /media/sf_UbuntuVB2/src/libxc-3.0.0/missing autoconf
/media/sf_UbuntuVB2/src/libxc-3.0.0/missing: 줄 81: autoconf: 명령어를 찾을 수 없음
WARNING: 'autoconf' is missing on your system.
         You should only need it if you modified 'configure.ac',
         or m4 files included by it.
         The 'autoconf' program is part of the GNU Autoconf package:
         <http://www.gnu.org/software/autoconf/>
         It also requires GNU m4 and Perl in order to run:
         <http://www.gnu.org/software/m4/>
         <http://www.perl.org/>
Makefile:410: recipe for target 'configure' failed
make: *** [configure] Error 127

잘 모르겠으니 그래서 일단

$ sudo apt-get install autoconf 

를 함.

autoconf를 깔고, 다시 configure 하고 make, make install 시도

오 뭔가 메이크가 되고 있다.

libxc를 깔고, 
다시 octopus로 돌아와
컨피규어, 메이크, 메이크 인스톨 삼종세트를 시전.


3. 
그러고 나서 다시 '문어'로 돌아와서

또 안 돼서 보니
./configure 할 때, 
--with-libxc-prefix=DIR/ 라고 해야한다고 한다.

$ ./configure --with-libxc-prefix=/media/sf_UbuntuVB2/src/libxc-3.0.0

라고 함.
뭐 디테일한 경로는 자세히 보지 말자.

checking for libxc... no (-I /media/sf_UbuntuVB2/src/libxc-3.0.0/include -L/media/sf_UbuntuVB2/src/libxc-3.0.0/lib -lxc)
configure: error: Could not find required libxc library ( >= v 2.0.0).

아오 여기서 막혀서 일단 쉼.

config.log를 봐도 뭐 이건...
gfortran: error: /media/sf_UbuntuVB2/src/libxc-3.0.0/lib/libxcf90.a: No such file or directory
gfortran: error: /media/sf_UbuntuVB2/src/libxc-3.0.0/lib/libxc.a: No such file or directory

찾아보니 libxc-2.2.x 을 쓰라고 해서 그걸 받아야겠다. ㅎㅎ ㅡㅡ;;; 







4.
이쯤에서 지쳐서 혹시나해서 우분투용 바이너리를 받아봄. (http://www.tddft.org/programs/octopus/wiki/index.php/Octopus_5.0.1)


바이너리 받아서 해도 안 되네.
아오....
amd64 용이라서 내꺼에서 안 된다고 함. 사실 어차피 Virtual Box에서 가상으로 돌리는 거라 amd64 로 하나 더 우분투를 깔면 되긴 하지만, 여기서 괜한 오기 발동. 내가 기어이 그냥 지금 있는 거에 깔고만다! 라는 ㅋㅋㅋ

여튼

뭔가 수상해서 config.log 파일을 다시 살펴보고
거기에서 missing이라고 나오는 파일을 find 명령을 써서 어디 있는지 잘 찾아봄 그랬더니 어딘가에 있다. 그 경로로 configure 할 때 지정.

$ ./configure --with-libxc-prefix=/opt/etsf

오홀 이거 됐다. libxc-3.0.0로 성공. 
저 위에 할 때 libxc 경로지정이 잘못됐던 거임.


5. 
그랬더니 이제 또 다른 에러가.
configure: error: could not find required BLAS library

어딘가에서 BLAS 3.6.0을 받고

압축을 풀어서 봤더니 configure는 없고 Makefile만 있길래
그냥 sudo make 때림.
그러니까 뭔가 되는 듯.

아 그래도 좀 안 돼서 이거 함. 그냥 되면 이상하지 ㅋㅋ 

$ sudo apt-get install liblapack-dev

훨신 편하네

다시 문어로 돌아와서 컨피규어 하는데

checking for sgemm in -lblas... yes

로 바뀜 오케!!!


6. 

하지만 기쁨도 잠시.

checking for gsl-config... no
*** The gsl-config script installed by GSL could not be found.
*** If GSL was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the GSL_CONFIG environment variable to the
*** full path to gsl-config.
configure: error: could not find required GSL library

이번엔 GSL library가 없다고 한다. 이건 뭘까 ㅡㅡ;;;
무슨 Scientific Library 라고 한다.
그래서 이거 때림

$ sudo apt-get install libgsl0ldbl

이것도 때림

$ sudo apt-get install libgsl0-dev


아무래도 ./configure option을 바꿔야 할 듯.
오 그냥 해도 됐다.


7. 
이번엔 또 다른 라이브러리가 없다고.
FFT

checking for dfftw_init_threads in  -lfftw3_threads... no
configure: error: Could not find required FFT library.

여기서 받으면 됨.
FFTW 3.3.4 를 받음. 

이건 꽤 유명한 라이브러리인데,
예상했다시피 푸리에 변환 해주는 물건이다.
tar로 받아서 컨피규어 메이크 메이크 인스톨 삼종세트 한 번 더 때려주고.
잠깐 궁금해서 AUTHORS 파일을 vi로 열어보니 역시나 들어있는 Steven G. Johnson의 이름. 

이거 설치하는 게 생각보다 시간이 꽤 걸리네. 그래도 이 정도야 뭐. 라곤 하지만 벌써 이틀 정도 그냥 지나가고 있다. ㅎㅎㅎ


일단 여기까지만 하고 집에 가자 ㅋㅋ
7월 19일


8. 
여기부터 7월 20일

fftw를 깔다가 
sudo make 단계에서
missing makeinfo라는 에러 메세지가 나와서

WARNING: 'makeinfo' is missing on your system.

어딘가를 찾아보니 texinfo 라는 걸 깔으라고 해서
이젠 뭐가 뭔지도 모르겠고 자꾸 산으로 가긴 하지만 그래도 일단 깔았다.

$ sudo apt-get install texinfo

ㅎㅎㅎ
언젠가 끝나겠지 ㅎㅎ
다시 fftw 에서 닷 슬래시 컨피규어 실행
이렇게 해서 fftw 설치 완료.

이제 어디로 다시 가야되지?
아, 다시 옥토푸스로 가야지.

이거 한 번 더.

$ ./configure --with-libxc-prefix=/opt/etsf


어! 방금 configure가 끝난 거 같은데? 

하지만 안심할 수 없지.

sudo make 때려보고
오 되네!

그럼 sudo make install도 때려보고.
오 됐다!!!!! 



9.

가만 이제 뭐 하지? 
실행파일 위치를 찾아보니 여기인 듯

/opt/etsf/bin/octopus

/etc/environment 에 가서 PATH를 추가해주면 된다. 그리고 변경내용 적용.

$ source environment

PATH가 잘 바뀌었는지 확인하려면

$ echo $PATH

드디어 실행!

$ octopus

될 리가 없지 ㅡㅡ;;;
이렇게 쉽게 될 리가 없지.

역시 마지막까지 방심하지 못하게 하는군.

*** Fatal Error (description follows)
Error initializing parser
Cannot open input file!
Please provide an input file with name inp in the current workdir

뭔소린지 잘 모르겠는 에러가 떴다. 일단 실행을 하면 기본 화면은 떠야하는 거 아닌가? 커맨드 모드로 라인 바이 라인으로 되는 게 뜰 줄 알았는데, 시작부터 뭐 파일을 하나 넣으라고 하네.

그 와중에 이런거 한 번 해보자.

$ octopus -v
octopus 5.0.1 (svn version 15042)

옥토푸스 매뉴얼에서 수소원자 튜토리얼을 보니 inp라는 걸 만들라고 한다. 그리고 저 에러 메세지 말대로 그 파일 이름을 무려 inp로 저장해서 두어야 한다. 

그래서 

CalculationMode = gs

%Coordinates
 'H' | 0 | 0 | 0
%

이렇게 생긴걸 복사붙이기 해서 inp라는 이름의 텍스트파일로 저장.
그리고 다시

$ octopus

그랬더니!!!!



드디어 성공!!!!




10. 
그러니까 이거 하면서 같이 깔은 게,

1. gfortran
2. libxc
3. autoconf
4. BLAS
5. GSL library
6. fftw
7. makeinfo 

ㅋㅋㅋㅋ

많기도 하구나.


이제 가지고 놀 장난감이 생겼으니 이것저것 재밌게 해봐야겠다. 

끝.



2016년 7월 20일
겨울떨개
Comments