В настоящее время все более востребованными стали вычислительные кластеры, которые содержат в себе не только классические CPU, но и графические ускорители GPU, которые позволяют в разы увеличить производительность вычислительных кластеров. В связи с этим многим людям кажется привлекательным проводить расчеты на гибридных CPU-GPU системах. Для этих целей, разработчики программных пакетов пару лет назад начали переписывать/дописывать/улучшать коды своих программа для работы на GPU системах или гибридных CPU-GPU, что у них очень удачно получается на данный момент.
Однако суть вопроса в том, как установить такие пакеты на свой кластер с GPU. Здесь я опишу краткую инструкцию по установке Quantum Espresso на кластер с GPU, т.к. она немного отличается от тривиальной и очень простой установки этого пакета на CPU систему.
Для начала нужно скачать архив последней версии QE, я скачивал версию 5.0.2 (espresso-5.0.2.tar.gz), затем скачать дополнение для GPU (QE-GPU-r216.tar.gz), а также файл с патчем версии 5.0.2, чтобы она смогла работать с GPU дополнением (QE-5.0.2_GPU-r216.patch).
Имея на руках, а точнее в каталоге три файла:
espresso-5.0.2.tar.gz
QE-GPU-r216.tar.gz
QE-5.0.2_GPU-r216.patch
можно приступать к установке.
Следует отметить, что необходимо иметь окружение Intel MPI и новые компиляторы Intel и, соответственно, прописанные к ним пути, а также знать где установлены библиотеки CUDA, т.к. сборка будет происходить и с их непосредственным участием.
Разархивируем пакет:
tar -xzvf espresso-5.0.2.tar.gz
Затем заходим туда и запускаем патч:
cd espresso-5.0.2
patch -p1 < ../QE-5.0.2_GPU-r216.patch
во время установки патча можно увидеть какие файлы подверглись изменениям. Затем нужно разархивировать GPU дополнения в папку с пакетом и зайти туда:
tar xfz ../QE-GPU-r216.tar.gz -C .
cd GPU
После этого выполняем конфигурацию с использованием необходимых настроек, приведенных ниже:
./configure \
FFT_LIBS=${MKLROOT}/lib/intel64/libfftw3xc_intel.a \
LAPACK_LIBS=${MKLROOT}/lib/intel64/libmkl_lapack95_lp64.a \
--enable-openmp --enable-parallel \
--enable-cuda --with-cuda-dir=<dir-with-cuda-libs> \
--enable-phigemm --enable-magma
Поясню, что мы сделали:
FFT_LIBS мы указали, что нужно использовать FFTW библиотеки Intel, вместо каких-либо еще.
LAPACK_LIBS - очевидно, указываем на использование интеловской библиотеки lapack.
--enable-openmp --enable-parallel --enable-cuda - включаем реализацию OpenMP, параллельность, т.е. MPI и поддержку CUDA.
--with-cuda-dir=<dir-with-cuda-libs> - прописываем полный путь к установленным библиотекам CUDA, обычно путь выглядит так (/opt/cuda/cuda-x.x).
--enable-phigemm --enable-magma - phigemm включает поддержку библиотек phiGEMM, для работы QE на гибридных CPU-GPU системах, magma - это аббревиатура Matrix Algebra on GPU and Multicore Architectures из которой все ясно.
Если все чудно сконфигурировалось без ошибок и каких либо странных предупреждений, то теперь нужно выйти из папки GPU и зайти в файл make.sys, где необходимо будет найти имя библиотеки -lblacs_openmpi_li64 и заменить его на -lblacs_intelmpi_li64.
После этого можно собираться программу командой:
make -f Makefile.gpu all-gpu
После чего получаем исполняемые файлы:
pw-gpu.x
ph-gpu.x
cp-gpu.x
neb-gpu.x
и д.р.
в папке ${QE_HOME_DIR}/bin
Вот такие пироги:) Надеюсь будет полезно. Полное время, потраченное на поиск пути корректной установки, равно 2 суткам :)
Комментариев нет:
Отправить комментарий