суббота, 9 июня 2012 г.

Установка VASP

Здесь будет описана установка VASP, как на ПК под 32-битной Linux Ubuntu, так и под 64-битной Linux CentOS.
Вначале нужно было поставить VASP на 12 ядерный ПК. т.к. на нем удобнее тестировать, ну и тоже нужно, чтобы был VASP под рукой.
Для установки VASP на машине с компиляторами Intel существует в папке makefile.linux_ifc_P4, в котором написано, что библиотеки BLAS лучше всего брать из GotoBLAS. Я скачал GotoBLAS2, но он у меня не хотел компилироваться из-за моей версии компилятора, но порывшись в интернете я нашел хороший совет, что можно заменить GotoBLAS на OpenBLAS, который не имеет таких проблем с компиляторами. Сделав это я получил 2 библиотеки libopenblas.so и libopenblas.so.0, которые необходимо включить в makefile.
Важное замечание, для 64-битной системы был установлен GotoBLAS2, поэтому вышеописанной проблемы не возникло.
Еще одна вещь. На многих форумах и википедии, в том числе, пишут, что нужно FFTW3, которая есть в пакете Intel MKL - $(MKLROOT)/interfaces/fftw3xf/ , однако его надо компилировать отдельно, что, если честно, у меня не получилось на 32-битном компе. На 64-битном также не получилось, потому что это большой кластер и администратор этого кластера на захотел этого делать.
Итак, чтобы поставить VASP на систему с компилятором Intel, нужно зайти в папку с библиотеками и переименовать makefile.linux_ifc_P4 в Makefile используя команду

cp makefile.linux_ifc_P4 Makefile

Затем нужно отредактировать полученный Makefile, написав


CPP     = mpiicc -E -P -C $*.F >$*.f
FC=mpiifort


В исходном файле используется компилятор ifc, который не подходит, если Вы хотите скомпилировать VASP для параллельной работы. Далее жмем make.
Если все собралось нормально, то переходим в папку vasp.*/ . Также переименовываем  makefile.linux_ifc_P4 в Makefile, и меняем


FC=mpiifort
...
BLAS=-L/opt/intel/mkl/lib/ia32 -lmkl_intel -lmkl_sequential -lmkl_core -lpthread


или для 64-битной


FC=mpiifort
...
BLAS=-L/opt/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread



Комментируем строки


# LAPACK, simplest use vasp.5.lib/lapack_double
#LAPACK= ../vasp.5.lib/lapack_double.o


# use the mkl Intel lapack
#LAPACK= -lmkl_lapack

Затем для MPI

FC=mpiifort
FCL=$(FC)

Снимаем коммнты с 

CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFC\" -DIFC \
     -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc -DNGZhalf \
     -DMPI_BLOCK=8000 

и

Также нужно добавить

SCA=-L/opt/intel/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_scalapack_lp64  -lmkl_sequential -lmkl_core -lpthread


но, если этого не добавить, то ничего страшного, VASP соберется и будет хорошо работать

FFT3D   = fftmpi.o fftmpi_map.o fft3dfurth.o fft3dlib.o 

И после этого жмем make и получаем файл vasp :)

Очень полезная ссылка по этому делу
http://confluence.rcs.griffith.edu.au:8080/display/GHPC/VASP#VASP-VASPmpiintel








Комментариев нет:

Отправить комментарий