Yambo — это программное обеспечение для изучения аспектов теории многотельных твердых и молекулярных систем. Он вычисляет свойства возбужденного состояния физических систем из первых принципов, например, из закона квантовой механики, без использования эмпирических данных.
Мы рассмотрим процесс установки Yambo из исходников на Ubuntu версии 18.04.
Установка репозитория для Math Kernel Library (MKL)
Для работы приложения нам необходимы библиотеки mkl, установку которых можно выполнить из официального репозитория. Рассмотрим процесс настройки соответствующего репозитория.
Переходим во временную папку:
cd /tmp
Скачиваем ключ репозитория:
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
Устанавливаем его:
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
Добавляем в список репозиториев настройку для mkl:
echo «deb https://apt.repos.intel.com/mkl all main» > /etc/apt/sources.list.d/intel-mkl.list
Обновляем список пакетов:
apt-get update
Установка Yambo
Устанавливаем необходимый набор зависимостей, которые необходимы для конфигурирования и сборки исходника:
apt-get install libxc-dev libblas-dev liblapack-dev gcc gfortran libhdf5-serial-dev python-tables build-essential ca-certificates curl file make g++ git gnupg2 iproute2 unzip m4 wget git zlib1g-dev ssh
Устанавливаем библиотеки mkl:
apt-get install intel-mkl-64bit-2020.4-912
Для загрузки дистрибутива Yambo переходим на GitHub и копируем ссылку на последний релиз приложения (архив tar.gz):
wget https://github.com/yambo-code/yambo/archive/5.0.1.tar.gz -O yambo-5.0.1.tar.gz
* в данном примере мы загрузим yambo версии 5.0.1 и сохраним в файл с названием yambo-5.0.1.tar.gz .
Распаковываем архив и переходим в папку
tar zxfv yambo-*.tar.gz && cd yambo-*/
Запускаем конфигурирование Yambo
./configure
Если вариант конфигурирования по умолчанию нас не устраивает, можно задать опции, например, так:
./configure —disable-mpi —enable-open-mp —enable-msgs-comps —enable-time-profile —enable-memory-profile —enable-slepc-linalg —with-blas-libs=»-L${MKLROOT}/lib/intel64 -Wl,—no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl» —with-lapack-libs=»-L${MKLROOT}/lib/intel64 -Wl,—no-as-needed -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm -ldl»
* полный набор опций можно посмотреть командой ./configure —help
Собираем пакет:
make -j4 all
* где -j4 означает что код собирается для параллельной работы программы на 4-х ядрах.
Создаем рабочую директорию yambo:
mkdir -p /usr/local/yambo/lib
Копируем скомпилированные пакеты в рабочую директорию:
cp -r bin /usr/local/yambo/
cp -r lib/external/*/*/lib/*.* /usr/local/yambo/lib/
cp -r lib/external/*/*/v4/serial/lib/*.* /usr/local/yambo/lib/
Добавляем команды Yambo в bash
export PATH=/usr/local/yambo/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/yambo/lib:$LD_LIBRARY_PATH
Готово. Можно запускать yambo.