|
| |||
|
|
CP2K: квантовая химия "для кающихся грешников"(с) Разгребаюсь потихоньку с CP2K. Совершенно примечательная программа для квантовохимических расчетов. Свободная и бесплатная, от перечня возможностей начинается бурное слюноотделение, но уровень документирования... просто катастрофически ужасен. Есть reference manual с кратким описанием параметров, есть набор собственных тестов, несколько туториалов и упражнений по отдельным вопросам, плюс гугл-группа (весьма живая). Влазить в этот трэш без предварительного опыта с какой-нибудь более вменяемой программой настоятельно не рекомендуется. Ну а я попробую изобразить небольшую серию постов с примерами и объяснениями, по мотивам и итогам, может кому поможет. Итак, для начала о том, как поставить это себе на комп. В Debian и особо мною любимом LMDE делается, как и полагается, линейно через apt-get install cp2k (cp2k есть в стандартном репозитории Debian). Однако, если нужна более свежая версия (в том числе экспериментальная), а также если хочется использовать CUDA (да, cp2k это умеет), то нужно ставиться из исходников. В системе нужно поставить следующие пакеты: subversion gfortran gcc make libopenblas-dev libfftw3-dev libint-dev libxc-dev g++ (названия указаны для пакетной базы Debian, все присутствуют в репозитории. UPD 16.01.2016: добавил g++). Для CUDA нужен также nvidia-cuda-toolkit. На самом деле часть этих пакетов опциональна, кроме того, можно использовать еще некоторые дополнительные библиотеки, которых нет в репозитории --- я перечислил все, что можно выжать из обычного репозитория Debian. Отдельное замечание о libopenblas-dev: при установке этот пакет через механизм update-alternatives изменяет конфигурацию системы таким образом, чтобы функции динамически подключаемой библиотеки BLAS на системе выполняла именно OpenBLAS. Если вы устанавливали OpenBLAS ранее или пользуетесь другими библиотеками --- Инструкции по получению исходников приведены на оф.сайте: http://www.cp2k.org/download Для получения текущей экспериментальной версии нужно выполнить команду svn checkout http://svn.code.sf.net/p/cp2k/code/trun Настройка параметров компиляции производится с помощью файлов в подкаталоге cp2k/cp2k/arch полученного дерева исходников. Название файла в этом каталоге соответствует представляемой им "платформе" --- важнейшим параметрам системы: ОС, компилятор, набор инструкций процессора, а также способ параллелизации. CP2K поддерживает параллельность через MPI и через OpenMP, а также через комбинацию двух этих вариантов. По опыту работы на однопроцессорных многоядерных системах --- OpenMP в CP2K работает быстрее и [естественно] жрет меньше памяти, чем MPI. Потому править будем файл Linux-x86-64-gfortran.ssmp. Мой конфиг, удачно прошедший компиляцию, выглядит так: Без CUDA: С CUDA: Особо обращаю внимание, что $NVFLAGS обязательно должны содержать $(DFLAGS) --- инструкции по сборке этого не упоминают, но без этого компиляция не удастся. Поместив нужный файл в подкаталог cp2k/cp2k/arch, переходим в подкаталог cp2k/cp2k/makefiles и выполняем make ARCH=Linux-x86-64-gfortran VERSION=ssmp Если используете версию с CUDA, я бы рекомендовал отдельно собрать версию без CUDA, и держать рядом на всякий случай. Например, на карте с 1 Гб видеопамяти CP2K периодически ругается на невозможность выделить видеопамять и вылетает, приходится запускать без GPU. Названия версий стандартные, но принципиально не ограничены --- скажем, для конфигурации без CUDA можно создать конфигурационный файл Linux-x86-64-gfortran.ssmpnc (nc всмысле no-CUDA) или как-то так. Результат компиляции будет в подкаталоге cp2k/cp2k/exe, там будет ряд файлов, реально нужен только cp2k.ssmp (ну и cp2k.ssmpnc), который можно копировать куда угодно и использовать. Отдельное замечание об очистке каталога при неудачной сборке. Авторы наделали много разных опций для очистки, до конца там не совсем понятно, что следует использовать в каких случаях, я использую make clean ; make veryclean ; make realclean ; make distclean --- упорото, но вроде работает. Добавить комментарий: |
||||||||||||||