Проект

Общее

Профиль

Manual queue » История » Версия 6

Дмитрий Чубаров, 10.08.2018 17:43

1 1 Владимир Кихтенко
h1. Система очередей
2
3 3 Дмитрий Чубаров
Для доступа к ресурсам кластера используется система управления вычислительными ресурсами "SLURM":https://slurm.schedmd.com/.
4 1 Владимир Кихтенко
5
{{toc}}
6
7
Система выполняет как традиционные команды PBS (qsub, qstat), так и специфические команды SLURM.
8 3 Дмитрий Чубаров
9 5 Дмитрий Чубаров
h2. Структура кластера
10 3 Дмитрий Чубаров
11 4 Дмитрий Чубаров
Структура и состояние кластера отображается командой "@sinfo@":https://slurm.schedmd.com/sinfo.html
12 3 Дмитрий Чубаров
13 1 Владимир Кихтенко
<pre>
14 3 Дмитрий Чубаров
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
15
fogs         up   infinite      2  alloc fog[2,8]
16
fogs         up   infinite      6   idle fog[1,3-7]
17
fms          up   infinite      1  alloc fm1
18
fms          up   infinite      3   idle fm[2-4]
19
preempt      up   infinite      4  alloc fm1,fog[2,8],mathserv
20
preempt      up   infinite     10   idle fm[2-4],fog[1,3-7],ts
21
preempt      up   infinite      1   down gis-eng3
22
all*         up   infinite      4  alloc fm1,fog[2,8],mathserv
23
all*         up   infinite     10   idle fm[2-4],fog[1,3-7],ts
24
all*         up   infinite      1   down gis-eng3
25
</pre>
26 1 Владимир Кихтенко
27 3 Дмитрий Чубаров
В структуре кластера выделены два подраздела fogs и fms, представляющие собой однородные кластеры 
28 1 Владимир Кихтенко
29 3 Дмитрий Чубаров
|_. подраздел |_. число узлов |_. основной процессор |_. коммуникация |_. сопроцессор |
30
| fogs | 8 | 2x AMD O2435 | InfiniBand DDR | нет |
31
| fms  | 4 | 2x Intel Xeon X5675 | Gigabit Ethernet | 4x NVIDIA Tesla C2070 |
32
33
Все узлы кластера объединены в раздел @all@. Раздел @preempt@ выделен для служебных задач.
34 1 Владимир Кихтенко
35 3 Дмитрий Чубаров
Узел @gis-eng3@ служит головным узлом кластера и выведен из под управления SLURM.
36
37 5 Дмитрий Чубаров
h2. Интерактивный режим
38 1 Владимир Кихтенко
39 5 Дмитрий Чубаров
h3. Команды SLURM
40 3 Дмитрий Чубаров
41
Для работы в интерактивном режиме необходимо
42 1 Владимир Кихтенко
43 5 Дмитрий Чубаров
# Зарезервировать ресурсы командой "@salloc@":https://slurm.schedmd.com/salloc.html
44
# Выполнять команды в рамках выделенных ресурсов командой "@srun@":https://slurm.schedmd.com/srun.html
45 3 Дмитрий Чубаров
# Освободить ресурсы командой @exit@
46
47
Примеры:
48
49 5 Дмитрий Чубаров
h4. Пример 1. Запуск нескольких команд на одном узле из раздела @fms@
50 3 Дмитрий Чубаров
51 1 Владимир Кихтенко
<pre>
52 3 Дмитрий Чубаров
(gis-eng3)$ salloc -N1 -p fms --exclusive 
53
salloc: Granted job allocation 19877
54
(gis-eng3)$ srun /bin/hostname
55
fm2.cl.localnet
56
(gis-eng3)$ srun gcc --version
57
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
58
Copyright (C) 2015 Free Software Foundation, Inc.
59 1 Владимир Кихтенко
This is free software; see the source for copying conditions.  There is NO
60 3 Дмитрий Чубаров
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
61
62
(gis-eng3)$ exit
63
exit
64
salloc: Relinquishing job allocation 19877
65 1 Владимир Кихтенко
</pre>
66
67 5 Дмитрий Чубаров
h4. Пример 2. Запуск интерпретатора команд на узле
68 1 Владимир Кихтенко
69
<pre>
70 3 Дмитрий Чубаров
(gis-eng3)$ salloc -N1 -p fms --exclusive
71
salloc: Granted job allocation 19878
72
(gis-eng3)$ srun --pty /bin/bash
73
(fm2)$ /bin/hostname
74
fm2.cl.localnet
75
(fm2)$ gcc --version
76
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
77
Copyright (C) 2015 Free Software Foundation, Inc.
78
This is free software; see the source for copying conditions.  There is NO
79
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
80 1 Владимир Кихтенко
81 3 Дмитрий Чубаров
(fm2)$ exit
82
exit
83
(gis-eng3)$ exit
84
exit
85
salloc: Relinquishing job allocation 19878
86 1 Владимир Кихтенко
</pre>
87
Этот вариант удобен, если выполняемые команды требуют установки переменных окружения.
88
89 5 Дмитрий Чубаров
h4. Пример 3. Запуск команды одной строкой
90 3 Дмитрий Чубаров
91 1 Владимир Кихтенко
<pre>
92 3 Дмитрий Чубаров
(gis-eng3)$ srun -N1 -p fms /bin/hostname
93
fm2.cl.localnet
94 1 Владимир Кихтенко
</pre>
95
96 5 Дмитрий Чубаров
h3. Команды PBS
97 1 Владимир Кихтенко
98 3 Дмитрий Чубаров
Команда @qsub -I@ эквивалентна команде @salloc@
99 1 Владимир Кихтенко
100 6 Дмитрий Чубаров
h4. Пример 4. Запуск команды в интерактивном режиме с помощью qsub и srun
101 3 Дмитрий Чубаров
102
<pre>
103 1 Владимир Кихтенко
(gis-eng3)$ qsub -I
104 3 Дмитрий Чубаров
salloc: Granted job allocation 19880
105
(gis-eng3)$ srun /bin/hostname
106
fm2.cl.localnet
107
(gis-eng3)$ exit
108
exit
109
salloc: Relinquishing job allocation 19880
110 1 Владимир Кихтенко
</pre>
111
112 5 Дмитрий Чубаров
h2. Пакетный режим
113 3 Дмитрий Чубаров
114 5 Дмитрий Чубаров
h3. Команды SLURM
115 3 Дмитрий Чубаров
116 5 Дмитрий Чубаров
Для резервирования ресурсов и запуска задач в пакетном режиме используется команда "@sbatch@":https://slurm.schedmd.com/sbatch.html.
117 3 Дмитрий Чубаров
118
Аргументы для команды можно включить в текст скрипта пакетной задачи:
119
120
<pre>
121 1 Владимир Кихтенко
#!/bin/bash
122 3 Дмитрий Чубаров
#SBATCH --nodes=1
123
#SBATCH --ntasks=1
124
#SBATCH --cpus-per-task=12
125
#SBATCH --partition=fms
126
127
srun /bin/hostname
128
</pre>
129
130
Поставить задачу в очередь на выполнение можно командой
131
<pre>
132
sbatch slurm-test.job
133
</pre>
134
Когда ресурсы освободятся, этот скрипт выполнится на одном из узлов из раздела @fms@.
135
136 5 Дмитрий Чубаров
h3. Команды PBS
137 3 Дмитрий Чубаров
138
<pre>
139
$ qsub qsub-test.sh
140
</pre>
141
142
Скрипт @qsub-test.sh@ может использовать в качестве синтаксиса резервирования ресурсов как синтаксис Torque, так и синтаксис PBS Professional
143
144
<pre>
145
#!/bin/bash
146
# Using Torque syntax
147 1 Владимир Кихтенко
#PBS -q fms
148
#PBS -l nodes=1:ppn=12
149
150
/bin/hostname
151
</pre>
152
153
<pre>
154
#!/bin/bash
155
# Using PBS Professional syntax
156
#PBS -q fms
157
#PBS -l select=1:ncpus=12
158
159
/bin/hostname
160
</pre>
161
162
При успешной постановке в очередь будет показан id, присвоенный задаче.
163 5 Дмитрий Чубаров
164
Команда @qsub scriptname@ эквивалентна команде с учетом трансляции директив @#PBS@ в директивы @#SLURM@
165
<pre>/usr/bin/sbatch -e scriptname.e%A -o scriptname.o%A scriptname 2>&1</pre>
166
167
h2. Просмотр состояния очереди
168
169
h3. Команды SLURM
170
171
Для отображения состояния очереди используется команда "@squeue@":https://slurm.schedmd.com/squeue.html
172
173
Формат отображения представлен ниже
174
<pre>
175
JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
176
19074   preempt gitlab-c     root  R 16-00:42:19      1 fog8
177
19246       all jupyter-    user1  R 15-04:20:50      1 fog2
178
19257       all jupyter-    user2  R 14-23:24:30      1 fm1
179
19868       all  taverna    user3  R     5:10:41      1 mathserv
180
</pre>
181
182
h3. Команды PBS
183
184
Команда @qstat@ отображает список задач в очереди в формате, привычном пользователям PBS
185
186
<pre>
187
Job id              Name             Username        Time Use S Queue          
188
------------------- ---------------- --------------- -------- - ---------------
189
19074               gitlab-ci        root            16:00:45 R preempt        
190
19246               jupyter-         user1           15:04:24 R all            
191
19257               jupyter-         user2           14:23:28 R all            
192
19868               taverna          user3           00:05:14 R all            
193
</pre>