Manual queue » История » Редакция 4
Редакция 3 (Дмитрий Чубаров, 10.08.2018 14:14) → Редакция 4/6 (Дмитрий Чубаров, 10.08.2018 15:38)
h1. Система очередей
Для доступа к ресурсам кластера используется система управления вычислительными ресурсами "SLURM":https://slurm.schedmd.com/.
{{toc}}
h2. Использование
Система выполняет как традиционные команды PBS (qsub, qstat), так и специфические команды SLURM.
h3. Структура кластера
Структура и состояние кластера отображается командой "@sinfo@":https://slurm.schedmd.com/sinfo.html @sinfo@
<pre>
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
fogs up infinite 2 alloc fog[2,8]
fogs up infinite 6 idle fog[1,3-7]
fms up infinite 1 alloc fm1
fms up infinite 3 idle fm[2-4]
preempt up infinite 4 alloc fm1,fog[2,8],mathserv
preempt up infinite 10 idle fm[2-4],fog[1,3-7],ts
preempt up infinite 1 down gis-eng3
all* up infinite 4 alloc fm1,fog[2,8],mathserv
all* up infinite 10 idle fm[2-4],fog[1,3-7],ts
all* up infinite 1 down gis-eng3
</pre>
В структуре кластера выделены два подраздела fogs и fms, представляющие собой однородные кластеры
|_. подраздел |_. число узлов |_. основной процессор |_. коммуникация |_. сопроцессор |
| fogs | 8 | 2x AMD O2435 | InfiniBand DDR | нет |
| fms | 4 | 2x Intel Xeon X5675 | Gigabit Ethernet | 4x NVIDIA Tesla C2070 |
Все узлы кластера объединены в раздел @all@. Раздел @preempt@ выделен для служебных задач.
Узел @gis-eng3@ служит головным узлом кластера и выведен из под управления SLURM.
h3. Интерактивный режим
h4. Команды SLURM
Для работы в интерактивном режиме необходимо
# Зарезервировать ресурсы командой @salloc@
# Выполнять команды в рамках выделенных ресурсов командой srun
# Освободить ресурсы командой @exit@
Примеры:
h5. Пример 1. Запуск нескольких команд на одном узле из раздела @fms@
<pre>
(gis-eng3)$ salloc -N1 -p fms --exclusive
salloc: Granted job allocation 19877
(gis-eng3)$ srun /bin/hostname
fm2.cl.localnet
(gis-eng3)$ srun gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(gis-eng3)$ exit
exit
salloc: Relinquishing job allocation 19877
</pre>
h5. Пример 2. Запуск интерпретатора команд на узле
<pre>
(gis-eng3)$ salloc -N1 -p fms --exclusive
salloc: Granted job allocation 19878
(gis-eng3)$ srun --pty /bin/bash
(fm2)$ /bin/hostname
fm2.cl.localnet
(fm2)$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
(fm2)$ exit
exit
(gis-eng3)$ exit
exit
salloc: Relinquishing job allocation 19878
</pre>
Этот вариант удобен, если выполняемые команды требуют установки переменных окружения.
h5. Пример 3. Запуск команды одной строкой
<pre>
(gis-eng3)$ srun -N1 -p fms /bin/hostname
fm2.cl.localnet
</pre>
h4. Команды PBS
Команда @qsub -I@ эквивалентна команде @salloc@
h5. Пример 4
<pre>
(gis-eng3)$ qsub -I
salloc: Granted job allocation 19880
(gis-eng3)$ srun /bin/hostname
fm2.cl.localnet
(gis-eng3)$ exit
exit
salloc: Relinquishing job allocation 19880
</pre>
h3. Пакетный режим
h4. Команды SLURM
Для резервирования ресурсов и запуска задач в пакетном режиме используется команда @sbatch@.
Аргументы для команды можно включить в текст скрипта пакетной задачи:
<pre>
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=12
#SBATCH --partition=fms
srun /bin/hostname
</pre>
Поставить задачу в очередь на выполнение можно командой
<pre>
sbatch slurm-test.job
</pre>
Когда ресурсы освободятся, этот скрипт выполнится на одном из узлов из раздела @fms@.
h4. Команды PBS
<pre>
$ qsub qsub-test.sh
</pre>
Скрипт @qsub-test.sh@ может использовать в качестве синтаксиса резервирования ресурсов как синтаксис Torque, так и синтаксис PBS Professional
<pre>
#!/bin/bash
# Using Torque syntax
#PBS -q fms
#PBS -l nodes=1:ppn=12
/bin/hostname
</pre>
<pre>
#!/bin/bash
# Using PBS Professional syntax
#PBS -q fms
#PBS -l select=1:ncpus=12
/bin/hostname
</pre>
При успешной постановке в очередь будет показан id, присвоенный задаче.