[mephi-hpc] Quantum ESPRESSO GPU with CUDA (qe-gpu cuda)

anikeev anikeev at ut.mephi.ru
Tue May 11 16:26:08 MSK 2021


On Tue, 2021-05-04 at 12:55 +0000, Углов Владимир Васильевич wrote:
> Здравствуйте!

Здравствуйте!

> В рассылке как-то поднималась тема насчет PGI компиляторов и был дан
> совет установить для своего пользователя NVIDIA HPC SDK.
> 
> Однако, возникли вопросы насчет сборки Quantum ESPRESSO c CUDA.
> Например, для HPC-SDK + OpenMPI (MPI implementation that wraps PGI
> Fortran) + CUDA:
> 
> ./configure CC=pgcc FC=pgf90 F90=pgf90 MPIF90=mpipgifort --enable-
> openmp --with-cuda=/PATH/ --with-cuda-runtime=Y.y --with-cuda-cc=70 
> 
> В руководстве пользователя указано, что на кластере установлено
> NVIDIA CUDA Toolkit 9.2.148.
> На сайте NVIDIA самая ранняя версия HPC SDK 20.7 (August 2020) 
> https://developer.nvidia.com/nvidia-hpc-sdk-releases, которая
> поддерживает CUDA 10.1 и Minimum CUDA Driver 418.39 
> https://docs.nvidia.com/hpc-sdk/archive/20.7/hpc-sdk-release-notes/index.html
> .
> Т.е., получается, что перед установкой 
> https://docs.nvidia.com/hpc-sdk/archive/21.3/hpc-sdk-install-guide/index.html,например
> , последней версии HPC SDK 21.3 (April 2021) необходимо удалить
> предыдущую версию CUDA Toolkit c драйвером и затем установить
> соответствующие новые CUDA Toolkit 11.3 (April 2021), но для этого
> нужны права sudo
> https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
> .

На кластере стоит драйвер 418.152:

anikeev at tensor:~$ dpkg -l | grep -i nvidia-driver
nvidia-driver    418.152.00-1    amd64

Таким образом, Вы можете поставить HPC SDK 20.7 без удаления системной
версии с использованием proot (см. руководство пользователя, пп. 3.6)

https://ut.mephi.ru/pdf/projects/hpc/userguide.pdf

https://proot-me.github.io/

Обращайтесь при наличии вопросов.

> 1. Учитывая, что обновление планируется с выходом нового релиза
> Debian в июне-июле, то пока нет возможности задействовать CUDA ядра
> при сборке Quantum ESPRESSO GPU?

Возможность есть, с помощью proot, см. выше.

> 2. Второй вопрос связан с запросом ресурсов на GPU узле. Чтобы
> задействовать больше CUDA ядер, то в bash скрипте мы занижаем --
> ntasks, например, до 2, а --cpus-per-task до 1 с тем, чтобы поставить
> 24 задачи (т.е. полностью загрузить GPU узел задействовав 48
> графических ускорителя, учитывая, что --gres=gpu:2)?
> 
> В рекомендациях по выбору числа потоков CPU на каждый GPU для QE
> приводится (наверно,
> --cpus-per-task нужно указывать какое-то другое)

Простите, не понял формулировку вопроса. Для оптимального использования
GPU обычно рекомендуется запускать много вычислительных потоков на один
ускоритель, однако, в руководстве QE указано, что он не рассчитан на
такое использование:

https://gitlab.com/QEF/q-e-gpu/-/wikis/home

As a rule, the code should run with one MPI per GPU. In some cases, if
allowed by the node configuration, performance may be improved by
running two processes per GPU device. The code will print a warning if
more than two processes try to run on the same GPU as this is
discouraged.

Попробуйте такие два скрипта (запрос времени опустил):

#!/bin/bash
#SBATCH --partition=gpu
#SBATCH --nodes=1
#SBATCH --gres=gpu:2
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=24
#SBATCH --mem=0               # Request the full memory of the node
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

#!/bin/bash
#SBATCH --partition=gpu
#SBATCH --nodes=1
#SBATCH --gres=gpu:2
#SBATCH --ntasks=4
#SBATCH --cpus-per-task=12
#SBATCH --mem=0               # Request the full memory of the node
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK

> Спасибо!
> 
> 
> 
> С уважением, Игорь Сафронов, Владимир Углов
> _______________________________________________
> hpc mailing list
> hpc at lists.mephi.ru
> https://lists.mephi.ru/listinfo/hpc
-- 
С уважением,
инженер отдела Unix-технологий МИФИ,
Аникеев Артём.
Тел.: 8
(495) 788-56-99, доб. 8998


More information about the hpc mailing list