[mephi-hpc] Пример LAMMPS на GPU
anikeev at ut.mephi.ru
anikeev at ut.mephi.ru
Wed Dec 15 17:08:00 MSK 2021
Уважаемые пользователи!
Вашему вниманию предлагается пример использования пакета молекулярной
динамики LAMMPS с GPU-ускорителями:
Конфигурация приложения на Tensor:
anikeev at tensor:~$ source /opt/nvidia/hpc_sdk/nvvars.sh
anikeev at tensor:~$ source /opt/nvidia/hpc_sdk/nv_mpi_vars.sh
anikeev at tensor:~$ cmake -D PKG_KOKKOS=yes -D Kokkos_ARCH_SKX=yes -D
Kokkos_ARCH_VOLTA70=yes -D Kokkos_ENABLE_CUDA=yes -D
CMAKE_CXX_COMPILER=/mnt/pool/5/andreykv/LMP_by_anikeev/basis/lammps-29Sep2021/lib/kokkos/bin/nvcc_wrapper
-D
CUDAToolkit_INCLUDE_DIR=/opt/nvidia/hpc_sdk/Linux_x86_64/21.3/cuda/11.2/targets/x86_64-linux/include
-D PKG_REAXFF=yes ../cmake
Конфигурация приложения на Basis:
anikeev at basis:~$ source /opt/nvidia/hpc_sdk/nvvars.sh
anikeev at basis:~$ source /opt/nvidia/hpc_sdk/nv_mpi_vars.s
anikeev at basis:~$ cmake -D PKG_KOKKOS=yes -D Kokkos_ARCH_ZEN2=yes -D
Kokkos_ARCH_AMPERE80=yes -D Kokkos_ENABLE_CUDA=yes -D
CMAKE_CXX_COMPILER=/mnt/pool/5/andreykv/LMP_by_anikeev/basis/lammps-29Sep2021/lib/kokkos/bin/nvcc_wrapper
-D
CUDAToolkit_INCLUDE_DIR=/opt/nvidia/hpc_sdk/Linux_x86_64/21.3/cuda/11.2/targets/x86_64-linux/include
-D PKG_REAXFF=yes ../cmake
Собранные пакеты можно найти в директориях:
/mnt/pool/5/andreykv/LMP_by_anikeev/tensor/lammps-29Sep2021/build/lmp
/mnt/pool/5/andreykv/LMP_by_anikeev/basis/lammps-29Sep2021/build/lmp
Примеры задач можно найти в директориях:
/mnt/pool/5/andreykv/LMP_by_anikeev/tensor/reaxff_example/start.sh
/mnt/pool/5/andreykv/LMP_by_anikeev/basis/reaxff_example/start.sh
Пример стартового скрипта для одного GPU-ускорителя:
#!/bin/bash
#SBATCH --partition=gpu
#SBATCH --nodes=1
#SBATCH --gres=gpu:1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH --time=10:00:00
source /opt/nvidia/hpc_sdk/nvvars.sh
source /opt/nvidia/hpc_sdk/nv_mpi_vars.sh
cd /mnt/pool/5/andreykv/LMP_by_anikeev/basis/c_pah
mpirun
/mnt/pool/5/andreykv/LMP_by_anikeev/basis/lammps-29Sep2021/build/lmp -k
on g 1 -sf kk -in in.reaxc.stat
Пример стартового скрипта для двух GPU-ускорителей:
#!/bin/bash
#SBATCH --partition=gpu
#SBATCH --nodes=1
#SBATCH --gres=gpu:2
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=1
#SBATCH --time=10:00:00
source /opt/nvidia/hpc_sdk/nvvars.sh
source /opt/nvidia/hpc_sdk/nv_mpi_vars.sh
cd /mnt/pool/5/andreykv/LMP_by_anikeev/basis/c_pah
mpirun
/mnt/pool/5/andreykv/LMP_by_anikeev/basis/lammps-29Sep2021/build/lmp -k
on g 2 -sf kk -in in.reaxc.stat
На практике нужно стараться использовать минимум GPU для отдельной
задачи. Несколько GPU в одной задаче нужно использовать, если на одном
GPU нехватает объема видеопамяти.
Обращайтесь при возникновении вопросов по использованию GPU-ускорителей.
Переход на GPU-ускорители сокращает не только время расчета Вашей
задачи, но и время ожидания в очереди задач. GPU-ускоренные освобождают
CPU ресурсы для Ваших коллег, алгоритмы которых нельзя перенести на GPU.
Кроме того, GPU-ускоренные расчеты сокращают энергопотребление
университета.
Напоминаю, что для векторизаованных на базе SIMD инструкций (AVX-512
FMA, AVX-2 FMA) алгоритмов в первую очередь нужно использовать кластер
Tensor, во вторую - кластер Cherenkov. Подавляющее большинство
современных пакетов физического моделирования подерживают векторизацию
за счет использования библиотек BLAS, LAPACK, FFTW, MKL.
Для невекторизованных алгоритмов нужно в первую очередь использовать
кластер Unilcuster, во вторую - кластер Basov. Используя правильное
аппаратное обеспечение Вы сокращает сроки ожидания для себя и коллег в
разы.
--
С уважением,
инженер отдела UNIX-технологий НИЯУ МИФИ,
к.ф.-м.н.,
Аникеев Артем.
e-mail: anikeev at ut.mephi.ru
тел.: 8 (495) 788-56-99, доб. 8998
More information about the hpc
mailing list