Популярные сообщения

пятница, 29 апреля 2011 г.

CPMD - пакет для квантово-химических расчетов

      Алгоритм установки пакета CPMD  версии 3.13.2 под операционные системы KUbuntu 10.4 amd64 и i386 на рабочии станции с процессорами AMD или Intel для проведения расчетов в одиночном или параллельном режиме. Редакция 06.05.2011
      Рабочий алгоритм по конфигурированию и установке прогрммы Car-Parrinello Molecular Dynamic. Тестировался на следующих процессорах: AMD ATHLON-64 X2 4200+, Intel Core 2 Duo E7500, Intel Atom N270.
      CPMD дает возможность реализовать параллельные квантово-химические расчеты на архитектурах с общей (SMP) и распределенной (MPP) памятью. Судя по сообщениям из майл-листа разработчиков данного пакета, использование архитектуры SMP, целесообразно только при достаточно большом количестве процессоров (или ядер), а так по скорости расчетов MPI работает лучше. Например, типовой расчет: FUNCTIONAL BLYP, GC-CUTOFF 5.0e-6, MAXSTEP 200, TIMESTEP 4.0, псевдопотенциал Вандербильта, энергия обрыва плоских волн 25 Ry, (общее время моделирования: 800 a.u. ~ 19,35 фс), система из 32 молекул воды, проводящийся на одном процессоре:
                      - Intel Core 2 Duo E7500 в два потока*, проходит за 30 минут ;
                      - AMD ATHLON-64 X2 4200+ в один поток, проходит за 1 час 20 минут ;
                      - Intel Core 2 Quad Q8200 в один поток, проходит за 2 часа 18 минут.
* - пакет установлен по данному алгоритму.
       Программа устанавливался на компьютер с уже установленной программой GROMACS, сконфигурированной под OpenMPI, так что рекомендуется проверить перед установкой CPMD пакеты поставленные из предыдущих руководств.
1. Скачиваем компилятор:
sudo apt-get install gfortran
2. А также вот эти пакеты ATLAS`a:
sudo apt-get install libatlas-headers libatlas-base-dev libblas-dev
3. Закачиваем архив с исходниками CPMD с официального сайта, распаковываем и переходим в папку:
cd SOURCE
4. Набираем команду для создания мейкфайла для выбранной нами архитектуры. MPI на конце, означает, что сборка производиться для системы с распределенной памятью.
./mkconfig.sh LINUX-x86_64-FEDORA-MPI > Makefile
./mkconfig.sh LINUX-i686-FEDORA-MPI > Makefile
    Поддерживается, также OpenMP для multi-core CPU, тогда файл должен оканчиваться на SMP, также возможна их совмещение, тогда SMP-MPI.
Но у меня установить и запустить при SMP-MPI конфигурациях для других архитектур не получилось, у кого получиться напишите, КАК это сделать ?!
5. Выполняем сборку пакета.
make
Ошибка: не найден mpif77
Исправлена:
sudo apt-get install libmpich1.0-dev
6.
make clean
make
Ошибка:
/usr/bin/ld: cannot find -lfftw
collect2: ld returned 1 exit status
make: *** [cpmd.x] Ошибка 1
Исправлено:
sudo apt-get install fftw-dev
make clean
make
8. Копируем бинарный исполнимый файл в директорию для запускаемых файлов.
cp ./cpmd.x ~/software/bin/ -v
(/home/root2/software/bin/ - это один из путей PATH (echo $PATH), которые сканируются при поиске исполнимых файлов)
9. Проверяем доступность всех библиотек, если выдает список, значит все ОК.
ldd /home/root2/software/bin/cpmd.x
        linux-vdso.so.1 =>  (0x00007fffbf45b000)
        liblapack.so.3gf => /usr/lib/atlas/liblapack.so.3gf (0x00007f7213e1a000)
        libblas.so.3gf => /usr/lib/atlas/libblas.so.3gf (0x00007f721347f000)
        libfftw.so.2 => /usr/lib/libfftw.so.2 (0x00007f7213246000)
        libmpi_f77.so.0 => /usr/lib/libmpi_f77.so.0 (0x00007f721300e000)
        libmpi.so.0 => /usr/lib/libmpi.so.0 (0x00007f7212d5e000)
        libopen-rte.so.0 => /usr/lib/libopen-rte.so.0 (0x00007f7212b11000)
        libopen-pal.so.0 => /usr/lib/libopen-pal.so.0 (0x00007f721289d000)
        libdl.so.2 => /lib/libdl.so.2 (0x00007f7212699000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00007f721247e000)
        libutil.so.1 => /lib/libutil.so.1 (0x00007f721227b000)
        libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007f7211f8e000)
        libm.so.6 => /lib/libm.so.6 (0x00007f7211d0a000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f7211af3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00007f72118d6000)
        libc.so.6 => /lib/libc.so.6 (0x00007f7211552000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f7214a3f000)
Вот и все. Установка завершена, теперь можно запускать моделирование. 
mpirun -np 2 cpmd.x cpmd-init-wave.in  -запустит два процесса расчета на текущем процессоре машины и будет выдавать информацию на стандартный вывод, ее можно перенаправить в файл добавив к концу команды > cpmd-init-wave.out 

P.S. Если статья была вам полезна проголосуйте в опросе блога, этим вы скажите СПАСИБО Автору, также можно обсудить её на Форуме.

3 комментария:

  1. при указании параметров моделирования методом КП необходимо указывать: вид псевдопотенциала, энергию обрыва плоских волн, шаг по времени, количество шагов.
    а вид обменно-корреляционного функционала на время расчета практически не влияет.

    ОтветитьУдалить
  2. надо еще дописать: псевдопотенциал Вандербильта, энергия обрыва плоских волн 25 Ry

    ОтветитьУдалить

Ваш комментарий будет "принят к сведению" и пойдет на рассмотрение.