Наконец у меня получилось установить DFTB+ на кластер. Установкой я занялся еще пару месяцев назад, но всегда на это не хватало времени, потому что установка под CentOS оказалась не такой тривиальной, как если бы устанавливать DFTB+ на Linux Ubuntu.
Итак, прежде всего, особенность компиляции этой программы состоит в том, что для нее используются статические библиотеки. Для всех предыдущих программ были использованы динамические библиотеки от Intel MKL.
Главная моя проблема при установке заключалась в том, что появлялась ошибка линковки статической библиотеки libpthread. Благодаря коллегам с DFTB+ форума я догадался, что у меня на кластере скорее всего нет статической библиотеки libpthread.
Итак, если вылезает ошибка типа
ld: cannot find -lpthread
значит нужно доустановить эти библиотеки. Для этого пишем
yum install glibc-static.x86_64
После чего все нужные библиотеки будут установлены.
Далее начинаем ставить DFTB+.
Распаковываем
tar -zxvf dftbp_1.1_src.tar.gz
далее заходим в появившуюся папку и копируем файл Makefile.user.template на Makefile.user
cp Makefile.user.template Makefile.user
И в нем вписываем нужную нам строку для нашей системы :
вместо
ARCH = i686-linux-ifort
пишем
ARCH = x86_64-linux-ifort
Затем заходим в папку sysmakes и открываем файл make.x86_64-linux-ifort, где в MKL_LIBDIR = записываем нужный путь для MKL библиотек. В моем случае эта строка выглядит так:
MKL_LIBDIR = /share/intel/mkl/lib/intel64
После чего сохраняем, заходим в prg_dftb и пишем
make distclean
make
Затем после удачной компиляции заходим в появившуюся папку _obj_x86_64-linux-ifort и находим запускаемый файл dftb+.
После выпуска параллельной версии DFTB+ я опишу как устанавливать ее.
Итак, прежде всего, особенность компиляции этой программы состоит в том, что для нее используются статические библиотеки. Для всех предыдущих программ были использованы динамические библиотеки от Intel MKL.
Главная моя проблема при установке заключалась в том, что появлялась ошибка линковки статической библиотеки libpthread. Благодаря коллегам с DFTB+ форума я догадался, что у меня на кластере скорее всего нет статической библиотеки libpthread.
Итак, если вылезает ошибка типа
ld: cannot find -lpthread
значит нужно доустановить эти библиотеки. Для этого пишем
yum install glibc-static.x86_64
После чего все нужные библиотеки будут установлены.
Далее начинаем ставить DFTB+.
Распаковываем
tar -zxvf dftbp_1.1_src.tar.gz
далее заходим в появившуюся папку и копируем файл Makefile.user.template на Makefile.user
cp Makefile.user.template Makefile.user
И в нем вписываем нужную нам строку для нашей системы :
вместо
ARCH = i686-linux-ifort
пишем
ARCH = x86_64-linux-ifort
Затем заходим в папку sysmakes и открываем файл make.x86_64-linux-ifort, где в MKL_LIBDIR = записываем нужный путь для MKL библиотек. В моем случае эта строка выглядит так:
MKL_LIBDIR = /share/intel/mkl/lib/intel64
После чего сохраняем, заходим в prg_dftb и пишем
make distclean
make
Затем после удачной компиляции заходим в появившуюся папку _obj_x86_64-linux-ifort и находим запускаемый файл dftb+.
После выпуска параллельной версии DFTB+ я опишу как устанавливать ее.
Комментариев нет:
Отправить комментарий