Здесь будет описана установка 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
Также нужно добавить
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
Очень полезная ссылка по этому делу
http://confluence.rcs.griffith.edu.au:8080/display/GHPC/VASP#VASP-VASPmpiintel
Вначале нужно было поставить 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
Комментариев нет:
Отправить комментарий