Запуск на узлах

В данном варианте допускается устанавливать дополнительные пакеты.
Установка осуществляется только в домашнюю директорию пользователя после предварительного согласования с администраторами ЦКП.

Запуск в интерактивном режиме

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 должны быть установлены права на выполнение