В данной статье описана процедура установки пакета Gromacs и необходимых для его работы программ с использованием среды параллельных распределенных вычислений OpenMPI для двойной точности вычислений double на базе операционной системы KUbuntu 10.4 (amd64 & i386). Редакция от 22.09.2011.
Представленный ниже алгоритм почти целиком является скриптом для установки, так что кому очень сильно хочется можно скопировать его в текстовый файл, назвав его, например, gromacs_installing.sh , права надо добавить chmod a+x gromacs_installing.sh и можно запускать на исполнение.Замечание: в статье указаны ошибки возникающие при сборке и пути их решения.
Необходимо создать переменные окружения в /etc/bash.bashrc или ~ /.bashrc :
Лучше также проверить установлены ли в системе пакеты:
# error with sse... - решение:
# 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, поэтому ставим бепешку:
# Дополнительные команды, которые иногда требуются при установке из исходников:
# справка по параметрам конфигурирования программы
P.S. Если статья была вам полезна проголосуйте в опросе блога, этим вы скажите СПАСИБО Автору, также можно обсудить её на Форуме.
Назад к оглавлению : руководство по Gromacs
Представленный ниже алгоритм почти целиком является скриптом для установки, так что кому очень сильно хочется можно скопировать его в текстовый файл, назвав его, например, 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.gz, gromacs-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, и поместив ее например в домашний каталог.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
Лучше также проверить установлены ли в системе пакеты:
sudo apt-get install gcc
sudo apt-get install g++
#installing OpenMPIcd openmpi-1.4.3
./configure --prefix=$SOFT
#configure error c++ preprocessor lib cpp fails sanity check - решение:
#sudo apt-get install g++#configure error c++ preprocessor lib cpp fails sanity check - решение:
make -j $NCPU
make install
#installing fftwcd 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 Gromacscd ~/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 ...make
binutils
libc6-dev
P.S. Если статья была вам полезна проголосуйте в опросе блога, этим вы скажите СПАСИБО Автору, также можно обсудить её на Форуме.
Назад к оглавлению : руководство по Gromacs
Здравствуйте )) очень полезная статья. Скажите, пожалуйста, а как выглядят команды grompp и mdrun в режиме распараллеливания?
ОтветитьУдалитьСпасибо
В Gromacs 4.5.* нет поддержки параллельной версии у grompp, ее отменили, есть только у mdrun, читайте самый конец статьи, там есть пример:
ОтветитьУдалитьhttp://aleks37.blogspot.com/2010/12/gromacs-beginning-programs-mdrun.html
Спасибо большое! пришлось поменять некоторые параметры (в каждом пункте) по --help, исходя из конфы машины, но все равно Ваша методика самая работоспособная и действенная, только что проверял!!!! Тем более для 4.5.3 версии, которую ругают все пользователи за плохой параллелизм :)
ОтветитьУдалитьЕще раз огромное спасибо!
Откуда инф. о том, что у версии 4.5.3 плохой параллелизм, в чем заключается плохость? ссылка есть на ресурс?
ОтветитьУдалитьЗдравствуйте Алексей.
ОтветитьУдалитьПрактически все шаги прошел - но на последнем получаю воттакую ошибку... к сожаоению сам разбираюсь плохо - не подскажите в чем дело ?
С уважением Владимир
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).
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, если вы не знаете, что вы делаете. Эти строки меня больше всего прикалывают в при сборке, думаешь вот как смешно.
Или можно еще раз пересобрать fftw, сначала make distclean, затем новая сборка, с вниманием на опции ./configure, но это лучше оставить на потом, сначала sudo apt-get ... , потом на крайний случай это.
ОтветитьУдалитьспаибо. у меня устиановлен SUSE и sudo apt-get не работает - пишет, что не знает, что такое apt-get
ОтветитьУдалитьэто немного усложняет задачу.
ОтветитьУдалитьтогда, можно попробовать через synaptic поставить или другой менеджер пакетов, который есть в SUSE, написав в его поиске fftw или что-то похожее или воспользоваться моим предпоследним комментарием про пересборку fftw.
да, вот еще что
ОтветитьУдалить1. приинсталляции fftw не прошел ключ --enable-openmp
спасибо. попробую...
ОтветитьУдалитьскорее всего, openMP, не увидел, или он не собрался при сборке, особо ничего страшного. Можно будет потом посмотреть влияет ли этот ключ на работу Gromacs при запуске на многоядерном процессоре. Если запуститься один процесс при 2-х ядерном CPU значит влияет, а если 2, то все ОК.
ОтветитьУдалитьдействительно какие то проблемы с 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 - хотя устанавливал я его стандартными способами несколько раз...
Проблема была решена дополнительно установкой
ОтветитьУдалить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
вот и хорошо, я в принципе тоже -dev пакеты ставил.
ОтветитьУдалитьА в gentoo всё ставится одной командой (emerge gromacs) и все зависимости она сама тянет...
ОтветитьУдалитьА версию какую она ставит 4.5.4 для openmpi ?
ОтветитьУдалитьЗдравствуйте! У Вас замечательный блог, очень информативный. Я только начала пользоваться Федорой и у меня небольшие проблемы с установкой. Через термминал устанавливаю программу, но потом ничего абсолютно не меняется. Если мой вопрос не слишком глуп, не могли бы Вы подсказать как быть?
УдалитьПо Федоре ничего сказать не могу, я на нее не ставил и с ней не работал. Может что-то конкретное интересует?
Удалить