#ubuntu-18.04 #slurm
#ubuntu-18.04 #слурм
Вопрос:
Большинство наших заданий либо (относительно) требуют мало ресурсов процессора и много памяти (обработка данных), либо требуют мало памяти и много ресурсов процессора (моделирование). Сервер, который у нас есть, как правило, достаточно большой (256 ГБ памяти; 16 ядер) для одновременного выполнения нескольких заданий, и мы хотели бы использовать slurm для планирования этих заданий. Однако, тестируя на небольшом (4 процессора) сервере Amazon, я не могу заставить это работать. Я должен был бы использовать SelectType=select/cons_res
и SelectTypeParameters=CR_CPU_Memory
, насколько я знаю. Однако при запуске нескольких заданий с использованием одного процессора они запускаются последовательно, а не параллельно.
Мой slurm.conf
ControlMachine=ip-172-31-37-52
MpiDefault=none
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurm-llnl/slurmctld.pid
SlurmdPidFile=/var/run/slurm-llnl/slurmd.pid
SlurmdSpoolDir=/var/lib/slurm-llnl/slurmd
SlurmUser=slurm
StateSaveLocation=/var/lib/slurm-llnl/slurmctld
SwitchType=switch/none
TaskPlugin=task/none
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
SelectType=select/cons_res
SelectTypeParameters=CR_CPU_Memory
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=cluster
JobAcctGatherType=jobacct_gather/none
SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
# COMPUTE NODES
NodeName=ip-172-31-37-52 CPUs=4 RealMemory=7860 CoresPerSocket=2 ThreadsPerCore=2 State=UNKNOWN
PartitionName=test Nodes=ip-172-31-37-52 Default=YES MaxTime=INFINITE State=UP
job.sh
#!/bin/bash
sleep 30
env
Вывод при выполнении заданий:
ubuntu@ip-172-31-37-52:~$ sbatch -n1 -N1 job.sh
Submitted batch job 2
ubuntu@ip-172-31-37-52:~$ sbatch -n1 -N1 job.sh
Submitted batch job 3
ubuntu@ip-172-31-37-52:~$ sbatch -n1 -N1 job.sh
Submitted batch job 4
ubuntu@ip-172-31-37-52:~$ sbatch -n1 -N1 job.sh
Submitted batch job 5
ubuntu@ip-172-31-37-52:~$ sbatch -n1 -N1 job.sh
Submitted batch job 6
ubuntu@ip-172-31-37-52:~$ sbatch -n1 -N1 job.sh
Submitted batch job 7
ubuntu@ip-172-31-37-52:~$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
3 test job.sh ubuntu PD 0:00 1 (Resources)
4 test job.sh ubuntu PD 0:00 1 (Priority)
5 test job.sh ubuntu PD 0:00 1 (Priority)
6 test job.sh ubuntu PD 0:00 1 (Priority)
7 test job.sh ubuntu PD 0:00 1 (Priority)
2 test job.sh ubuntu R 0:03 1 ip-172-31-37-52
Задания выполняются последовательно, в то время как в принципе должна быть возможность параллельного выполнения 4 заданий.
Ответ №1:
Вы не указываете память в своих файлах отправки. Кроме того, вы не указываете значение по умолчанию для памяти ( DefMemPerNode
, или DefMemPerCPU
). В этом случае Slurm выделяет полную память для заданий, поэтому он не может выделить несколько заданий на одном узле.
Попробуйте указать память :
sbatch -n1 -N1 --mem-per-cpu=1G job.sh
Вы можете проверить ресурсы, потребляемые на узле с scontrol show node
помощью (найдите AllocTRES
значение).