пятница, 22 июня 2012 г.
понедельник, 18 июня 2012 г.
Старое дело
Перечитывал свой блог и наткнулся на запись от четверг, 16 июня 2011 г., где описывалось мое дело, а именно написание программки по расчету жесткости материалов.
С того времени много воды утекло, люди стали умнее (хочется надеяться на это), в том числе и я :)
Много раз я переписывал ту, написанную мною программку, улучшал ее, оптимизировал затраты времени, чтобы можно было использовать ее для огроменных структур. И, наконец, совсем недавно, я закончил ее реализацию.
С того времени много воды утекло, люди стали умнее (хочется надеяться на это), в том числе и я :)
Много раз я переписывал ту, написанную мною программку, улучшал ее, оптимизировал затраты времени, чтобы можно было использовать ее для огроменных структур. И, наконец, совсем недавно, я закончил ее реализацию.
Небольшое резюме по программе.
1) Был использован один способ расчета, сейчас их 4.
2) Расчет мог производиться только для ковалентных кристаллов, сейчас для любых.
3) Использование памяти ограничивалось матлабовским лимитом (от 500Мб до 1Гб), сейчас это зависит от свободного места на жестком диске
4) Программа состояла из 3х функций, сейчас их 15
5) Улучшен ввод данных, раньше необходимо было иметь 2 файла с входными данными, сейчас только один универсальный POSCAR файл
Так что я чего-то достиг с того времени :)
суббота, 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
Также нужно добавить
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
Подписаться на:
Сообщения (Atom)