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

воскресенье, 26 декабря 2010 г.

Gromacs - установка и конфигурирование под OpenMPI & Linux

      В данной статье описана процедура установки пакета Gromacs и необходимых для его работы программ с использованием среды параллельных распределенных вычислений OpenMPI для двойной точности вычислений double на базе операционной системы KUbuntu 10.4 (amd64 & i386). Редакция от 22.09.2011.

       Представленный ниже алгоритм почти целиком является скриптом для установки, так что кому очень сильно хочется можно скопировать его в текстовый файл, назвав его, например, gromacs_installing.sh , права надо добавить chmod a+x gromacs_installing.sh и можно запускать на исполнение.Замечание: в статье указаны ошибки возникающие при сборке и пути их решения.
      Необходимо создать переменные окружения в /etc/bash.bashrc или ~ /.bashrc :
#gromacs configuration
export SOFT=$HOME/software
export CPPFLAGS="-I$SOFT/include"
export LDFLAGS="-L$SOFT/lib"
export NCPU=2 # number of CPU
export PATH="$PATH":$SOFT/bin
#end of gromacs configuration
      Пакеты скачиваем: fftw3.tar.gzgromacs-4.5.4.tar.gz или gromacs-4.5.5.tar.gz, gsl-1.11.tar.gz, openmpi-1.4.3.tar.gz распаковываем, необходимо создать папку software, с каталогами в ней lib, bin, include, и поместив ее например в домашний каталог.
      Лучше также проверить установлены ли в системе пакеты: 
sudo apt-get install gcc
sudo apt-get install g++
      #installing OpenMPI
cd openmpi-1.4.3
./configure --prefix=$SOFT 
#configure error c++ preprocessor lib cpp fails sanity check - решение:
#sudo apt-get install g++
make -j $NCPU
make install
      #installing fftw
cd fftw-3.2.2
#./configure --prefix=$SOFT --enable-long-double --enable-sse2 --enable-mpi --enable-openmp --enable-threads #--enable-sse
# error with sse... - решение:
./configure --prefix=$SOFT --enable-long-double --enable-mpi --enable-openmp
make -j $NCPU
make install
      #installing GSL
cd ~/gsl-1.11
./configure --prefix=$SOFT
make -j $NCPU
make install
      #installing Gromacs
cd ~/gromacs-4.5.3
sudo apt-get install fftw3-dev
./configure --with-gsl --enable-double --prefix=$SOFT --with-fft=fftw3
make -j $NCPU
make install
      #installing mdrun
make distclean
#./configure --with-gsl --enable-double --prefix=$SOFT --with-fft=fftw3 --enable-mpi --enable-tmpi-profiling
# configure: error: cannot compute sizeof (off_t) - смена версии mpi до 1.4.3 и gromacs до 4.5.3(при ручной сборке) не помогает - решение:
#./configure --with-gsl --enable-double --prefix=$SOFT --with-fft=fftw3
# но нам оно нам не подходит, т.к. мы лишаемся MPI, поэтому ставим бепешку:
sudo apt-get install openmpi-bin
# конфигурирование для mpi и double:
./configure --with-gsl --enable-double --prefix=$SOFT --with-fft=fftw3 --program-suffix=_mpi_d --enable-mpi --enable-tmpi-profiling
make mdrun -j $NCPU
make install-mdrun
# Вот в принципе и вся сборка!
# Дополнительные команды, которые иногда требуются при установке из исходников:
# справка по параметрам конфигурирования программы
./configure --help
# удаление текущего дистрибутива программы
make distclean
# удаление текущей сборки программы, обычно используется перед переустановкой программы на эту же версию но с др.пар-ми:
make clean
# для сборки исходников также могут потребоваться пакеты:
linux-headers-`uname -r`
make
binutils
libc6-dev 
# их установить можно через sudo apt-get ...

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

Назад к оглавлениюруководство по Gromacs

19 комментариев:

  1. Здравствуйте )) очень полезная статья. Скажите, пожалуйста, а как выглядят команды grompp и mdrun в режиме распараллеливания?
    Спасибо

    ОтветитьУдалить
  2. В Gromacs 4.5.* нет поддержки параллельной версии у grompp, ее отменили, есть только у mdrun, читайте самый конец статьи, там есть пример:
    http://aleks37.blogspot.com/2010/12/gromacs-beginning-programs-mdrun.html

    ОтветитьУдалить
  3. Спасибо большое! пришлось поменять некоторые параметры (в каждом пункте) по --help, исходя из конфы машины, но все равно Ваша методика самая работоспособная и действенная, только что проверял!!!! Тем более для 4.5.3 версии, которую ругают все пользователи за плохой параллелизм :)
    Еще раз огромное спасибо!

    ОтветитьУдалить
  4. Откуда инф. о том, что у версии 4.5.3 плохой параллелизм, в чем заключается плохость? ссылка есть на ресурс?

    ОтветитьУдалить
  5. Здравствуйте Алексей.
    Практически все шаги прошел - но на последнем получаю воттакую ошибку... к сожаоению сам разбираюсь плохо - не подскажите в чем дело ?

    С уважением Владимир

    checking whether the g++ linker (/usr/x86_64-suse-linux/bin/ld -m elf_x86_64) supports shared libraries... yes
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    appending configuration tag "F77" to libtool
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking for _LARGEFILE_SOURCE value needed for large files... no
    checking for sqrt in -lm... yes
    checking for fftw3.h... configure: error: Cannot find the default external FFT library (fftw3).
    Other alternatives are 'fftw2', or 'mkl' for Intel MKL.
    You are STRONGLY recommended to use one of these - fftw is free.

    Use CPPFLAGS and LDFLAGS if the library is installed in a
    non-standard location. (see FAQ at http://www.gromacs.org)

    If you dont care about performance you can also specify 'fftpack'
    to use a slower set of FFTs built into Gromacs.
    (Just install FFTW3 unless you really know what you are doing).

    ОтветитьУдалить
  6. checking for fftw3.h... configure: error: Cannot find the default external FFT library (fftw3).
    не находит библиотек fftw3
    пробуйте ставить из пакетов через
    sudo apt-get install fftw* различные и побывать последний шаг (или сначала make distclean и затем последний шаг)
    Other alternatives are 'fftw2', or 'mkl' for Intel MKL.
    You are STRONGLY recommended to use one of these - fftw is free.
    Далее пишет про альтернативные версии, которые можно использовать fftw2 и mkl ...
    Use CPPFLAGS and LDFLAGS if the library is installed in a non-standard location. (see FAQ at http://www.gromacs.org)
    Проверьте правильно ли у вас стоят/ли параметры в ./configure ...
    ----------------------------------------------------
    (Just install FFTW3 unless you really know what you are doing).
    Просто установите FFTW3, если вы не знаете, что вы делаете. Эти строки меня больше всего прикалывают в при сборке, думаешь вот как смешно.

    ОтветитьУдалить
  7. Или можно еще раз пересобрать fftw, сначала make distclean, затем новая сборка, с вниманием на опции ./configure, но это лучше оставить на потом, сначала sudo apt-get ... , потом на крайний случай это.

    ОтветитьУдалить
  8. спаибо. у меня устиановлен SUSE и sudo apt-get не работает - пишет, что не знает, что такое apt-get

    ОтветитьУдалить
  9. это немного усложняет задачу.
    тогда, можно попробовать через synaptic поставить или другой менеджер пакетов, который есть в SUSE, написав в его поиске fftw или что-то похожее или воспользоваться моим предпоследним комментарием про пересборку fftw.

    ОтветитьУдалить
  10. да, вот еще что
    1. приинсталляции fftw не прошел ключ --enable-openmp

    ОтветитьУдалить
  11. спасибо. попробую...

    ОтветитьУдалить
  12. скорее всего, openMP, не увидел, или он не собрался при сборке, особо ничего страшного. Можно будет потом посмотреть влияет ли этот ключ на работу Gromacs при запуске на многоядерном процессоре. Если запуститься один процесс при 2-х ядерном CPU значит влияет, а если 2, то все ОК.

    ОтветитьУдалить
  13. действительно какие то проблемы с fftw - устанавливал его несколько раз, перегружался - установка проходит - никаких замечаний. при попытке установить Gromacs снова и снова получаю сообщение:
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    appending configuration tag "F77" to libtool
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking for _LARGEFILE_SOURCE value needed for large files... no
    checking for sqrt in -lm... yes
    checking for fftw3.h... yes
    checking for main in -lfftw3... no
    configure: error: Cannot find fftw3 library

    По видимо система так и не видит fftw3 - хотя устанавливал я его стандартными способами несколько раз...

    ОтветитьУдалить
  14. Проблема была решена дополнительно установкой
    fftw3-threads-3.1.2-110.7.x86_64
    fftw3-devel-3.1.2-110.7.x86_64
    fftw3-threads-devel-3.1.2-110.7.x86_64

    ОтветитьУдалить
  15. вот и хорошо, я в принципе тоже -dev пакеты ставил.

    ОтветитьУдалить
  16. А в gentoo всё ставится одной командой (emerge gromacs) и все зависимости она сама тянет...

    ОтветитьУдалить
  17. А версию какую она ставит 4.5.4 для openmpi ?

    ОтветитьУдалить
    Ответы
    1. Здравствуйте! У Вас замечательный блог, очень информативный. Я только начала пользоваться Федорой и у меня небольшие проблемы с установкой. Через термминал устанавливаю программу, но потом ничего абсолютно не меняется. Если мой вопрос не слишком глуп, не могли бы Вы подсказать как быть?

      Удалить
    2. По Федоре ничего сказать не могу, я на нее не ставил и с ней не работал. Может что-то конкретное интересует?

      Удалить

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