Запуск на узлах
В данном варианте допускается устанавливать дополнительные пакеты.
Установка осуществляется только в домашнюю директорию пользователя после предварительного согласования с администраторами ЦКП.
Запуск в интерактивном режиме
srun [параметры] команда
srun [параметры] /home/пользователь/путь/до/исполняемого/файла
Запуск в фоновом режиме
sbatch /home/пользователь/путь/до/файла/slurm.job
Параметры запуска описываются в файле slurm.job
#!/bin/bash
#SBATCH --partition=
#SBATCH --nodes=
#SBATCH --ntasks-per-node=
#SBATCH --cpus-per-task=
#SBATCH --gres=
#SBATCH --output=
######## It is NOT recommended to change settings in this section ########
[[ $(uname -n) != *xh620* ]] && export UCX_NET_DEVICES=mlx5_0:1
source /etc/profile.d/modules.sh
source /etc/profile.d/lmod.sh
##########################################################################
## Load the required libraries
module load
## Run the program
Примечание:
1) файл должен обязательно начинаться с записи #!/bin/bash
2) далее должно идти перечисление параметров диспетчера задач, начинающееся с ключевого слова #SBATCH
Запуск в индивидуальной среде моделирования
В данном варианте имеется возможность устанавливать дополнительные пакеты в контейнер по своему усмотрению. Для этих целей существует файл run.docker. Именно файл run.docker необходимо запускать на выполнение.
Для запуска задачи в индивидуальной среде исполнения (контейнере) в среде виртуальной контейнеризации Docker используется надстройка docker-id, позволяющая:
- мигрировать UID и GID пользователя в контейнер;
- мигрировать домашний каталог пользователя в контейнер;
- выполнять в контейнере команды с правами root (используя sudo).
Запуск в интерактивном режиме
srun [параметры] --pty docker-id [ images | ps | start | stop | kill | rm ]
srun [параметры] --pty docker-id -it [параметры] образ команда
srun [параметры] --pty docker-id -it [параметры] образ /home/пользователь/путь/до/файла/run.docker
Запуск в фоновом режиме
sbatch /home/пользователь/путь/до/файла/slurm.job
Параметры запуска описываются в файле slurm.job
#!/bin/bash
#SBATCH --partition=
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=
#SBATCH --gres=
#SBATCH --output=
## Run the program
docker-id [параметры] образ команда
или
docker-id [параметры] образ /home/пользователь/путь/до/файла/run.docker
Вспомогательные команды docker-id
docker-id [ images | ps | start | stop | kill | rm ]
Параметры docker run, обрабатываемые надстройкой docker-id:
-e или --env; --gpus; -i или --interactive; -it; -t или --tty; -v или –volume; -w или --workdir
Параметр --gpus определяет возможность использования и количество графических ускорителей в контейнере:
--gpus all (установлен по-умолчанию) - сделает доступными в контейнере все графические ускорители, установленные на сервере;
--gpus N - сделает доступными в контейнере N графических ускорителей, где N – количество запрашиваемых графических ускорителей в общем числе графических ускорителей, установленных на сервере;
--gpus '"device=N"' - сделает доступными в контейнере N-ые графические ускорители, где N – порядковый номер/номера графического ускорителя, установленного на сервере.
Например, --gpus '"device=0"' сделает доступными в контейнере один графический ускоритель с порядковым номером 0, а --gpus '"device=0,2"' сделает доступными в контейнере два графических ускорителя с порядковыми номерами 0 и 2.
Запуск задания MPI
Запуск задания OpenMPI
Запуск вычислительного задания Open MPI осуществляется в фоновом режиме с применением команды mpirun из состава пакета OpenMPI.
sbatch /home/пользователь/путь/до/файла/ompi.job
Перед запуском вычислительного задания с применением технологии Open MPI необходимо:
1) определить вычислительный комплекс, на котором будет запускаться вычислительное задание (параметр --partition)
2) распределить MPI задания по вычислительным узлам, определив параметры --nodes, --ntasks-per-node, --cpus-per-task, OMP_NUM_THREADS руководствуясь следующими положениями:
- ntasks-per-node * cpus-per-task ≤ vCPU
- OMP_NUM_THREADS ≤ cpus-per-task
Примечание:
1) параметр --ntasks-per-node определяет количество MPI процессов (MPI ranks) на вычислительный узел
2) параметр --cpus-per-task резервирует ядра (vCPU) для каждого MPI процесса, но не передает значение команде mpirun, для
этого используется переменная OMP_NUM_THREADS
3) значения vCPU для вычислительных узлов указаны в разделе Параметры команд srun и sbatch
Параметры запуска описываются в файле ompi.job
#!/bin/bash
## This method uses the mpirun command from Open MPI
#SBATCH --partition=intel-ib
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=64
#SBATCH --cpus-per-task=2
export OMP_NUM_THREADS=2
######## It is NOT recommended to change settings in this section ########
[[ $(uname -n) != *xh620* ]] && export UCX_NET_DEVICES=mlx5_0:1
source /etc/profile.d/modules.sh
source /etc/profile.d/lmod.sh
##########################################################################
## Load the required libraries
module load openmpi/4.1.9
## Run the program
mpirun /home/пользователь/путь/до/исполняемого/файла
Запуск задания IntelMPI
Запуск вычислительного задания Intel MPI осуществляется в фоновом режиме с применением команды mpirun из состава пакета Intel oneAPI.
sbatch /home/пользователь/путь/до/файла/impi.job
Перед запуском вычислительного задания с применением технологии Intel MPI необходимо:
1) определить вычислительный комплекс, на котором будет запускаться вычислительное задание (параметр --partition)
2) распределить MPI задания по вычислительным узлам, определив параметры --nodes, --ntasks-per-node, --cpus-per-task, OMP_NUM_THREADS руководствуясь следующими положениями:
- ntasks-per-node * cpus-per-task ≤ vCPU
- OMP_NUM_THREADS ≤ cpus-per-task
Примечание:
1) параметр --ntasks-per-node определяет количество MPI процессов (MPI ranks) на вычислительный узел
2) параметр --cpus-per-task резервирует ядра (vCPU) для каждого MPI процесса, но не передает значение команде mpirun, для
этого используется переменная OMP_NUM_THREADS
3) значения vCPU для вычислительных узлов указаны в разделе Параметры команд srun и sbatch
Параметры запуска описываются в файле impi.job
#!/bin/bash
## This method uses the mpirun command from Intel MPI
#SBATCH --partition=intel-ib
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=64
#SBATCH --cpus-per-task=2
export OMP_NUM_THREADS=2
######## It is NOT recommended to change settings in this section ########
[[ $(uname -n) != *xh620* ]] && export UCX_NET_DEVICES=mlx5_0:1
source /etc/profile.d/modules.sh
source /etc/profile.d/lmod.sh
##########################################################################
## Load the required libraries
module load oneAPI/2025.3.1/mpi/2021.17
## Run the program
mpirun /home/пользователь/путь/до/исполняемого/файла
Запуск в среде Quantum Espresso
Среда моделирования Quantum Espresso установлена на все вычислительные узлы архитектуры x86_64.
Основные сведения:
-
поддержка вычислений на CPU и GPU
- на одном узле
- на нескольких узлах (MPI)
-
поддержка вычислений в индивидуальной среде исполнения (docker контейнере)
- только на GPU на одном узле
Запуск вычислительного задания осуществляется в фоновом режиме с применением команд из состава пакета Quantum Espresso.
sbatch /home/пользователь/путь/до/файла/qe.job
На одном узле на CPU
#!/bin/bash
#SBATCH --partition=intel
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=32
#SBATCH --cpus-per-task=2
######## It is NOT recommended to change settings in this section ########
source /etc/profile.d/modules.sh
source /etc/profile.d/lmod.sh
##########################################################################
## Load the required libraries
module load openmpi/4.1.9
module load qe-7.5/сpu
## Run the program
mpirun pw.x < "/home/пользователь/путь/до/файла/file.in" > "/home/пользователь/путь/до/файла/file.out"
Примечания:
1) значение параметра --nodes должно быть 1
2) значение параметра --ntasks-per-node рассчитывается как vCPU вычислительного узла делёное на 2
3) значение параметра --cpus-per-task должно быть 2
На одном узле на GPU
#!/bin/bash
#SBATCH --partition=intel-a100-pci5
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=2
#SBATCH --gres=gpu:a100:1
######## It is NOT recommended to change settings in this section ########
source /etc/profile.d/modules.sh
source /etc/profile.d/lmod.sh
##########################################################################
## Load the required libraries
module load nvhpc/25.3
module load qe-7.5/gpu
## Run the program
mpirun pw.x < "/home/пользователь/путь/до/файла/file.in" > "/home/пользователь/путь/до/файла/file.out"
Примечания:
1) очереди по приоритету их использования: intel-a100-pci5 | intel-a100-sxm4
2) значение параметра --nodes должно быть 1
3) значение параметра --ntasks-per-node должно быть 1
4) значение параметра --cpus-per-task должно быть 2
На нескольких узлах на CPU
#!/bin/bash
#SBATCH --partition=intel-ib
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=64
#SBATCH --cpus-per-task=2
######## It is NOT recommended to change settings in this section ########
[[ $(uname -n) != *xh620* ]] && export UCX_NET_DEVICES=mlx5_0:1
source /etc/profile.d/modules.sh
source /etc/profile.d/lmod.sh
##########################################################################
## Load the required libraries
module load openmpi/4.1.9
module load qe-7.5/сpu
## Run the program
mpirun pw.x < "/home/пользователь/путь/до/файла/file.in" > "/home/пользователь/путь/до/файла/file.out"
Примечания:
1) значение параметра --nodes определяет количество задействуемых вычислительных узлов
2) значение параметра --ntasks-per-node рассчитывается как vCPU вычислительного узла делёное на 2
3) значение параметра --cpus-per-task должно быть 2
На нескольких узлах на GPU
#!/bin/bash
#SBATCH --partition=intel-a100-pci4
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=2
#SBATCH --gres=gpu:a100:1
######## It is NOT recommended to change settings in this section ########
[[ $(uname -n) != *xh620* ]] && export UCX_NET_DEVICES=mlx5_0:1
source /etc/profile.d/modules.sh
source /etc/profile.d/lmod.sh
##########################################################################
## Load the required libraries
module load nvhpc/25.3
module load qe-7.5/gpu
## Run the program
mpirun pw.x < "/home/пользователь/путь/до/файла/file.in" > "/home/пользователь/путь/до/файла/file.out"
Примечания:
1) очереди по приоритету их использования: intel-a100-pci5 | intel-a100-sxm4
2) значение параметра --nodes определяет количество задействуемых вычислительных узлов
3) значение параметра --ntasks-per-node должно быть 1
4) значение параметра --cpus-per-task должно быть 2
В docker контейнере на GPU
#!/bin/bash
#SBATCH --partition=intel-a100-pci4
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=2
#SBATCH --gres=gpu:a100:1
## Run the program
docker-id nvcr.io/hpc/quantum_espresso:qe-7.1 /home/пользователь/путь/до/файла/qe.sh
Примечания:
1) очереди по приоритету их использования: intel-a100-pci5 | intel-a100-sxm4
2) значение параметра --nodes должно быть 1
3) значение параметра --ntasks-per-node должно быть 1
4) значение параметра --cpus-per-task должно быть 2
Пример файла qe.sh
#!/bin/bash
mpirun pw.x < "/home/пользователь/путь/до/файла/file.in" > "/home/пользователь/путь/до/файла/file.out"
Примечания:
1) на файл qe.sh должны быть установлены права на выполнение