У меня небольшой кластер с узлами A, B, C и D. Каждый узел имеет 80 ГБ ОЗУ и 32 ЦП. Я использую Slurm 17.11.7.
Я выполнил следующие тесты:
- Если я запускаю определенную команду Java непосредственно на терминале на узле A, я получаю результат через 2 минуты.
- Если я запускаю ту же команду с «одиночным» заданием массива (#SBATCH --array = 1-1), я получаю результат снова через 2 минуты.
- Если я выполнил ту же команду с теми же параметрами и заданием массива для slurm только на узле A, я получаю вывод за 8 минут, то есть он в четыре раза медленнее. Здесь я, конечно, одновременно запускаю 31 другую команду Java с другими параметрами.
Я уже пробовал SelectTypeParameters = CR_CPU_Memory и SelectTypeParameters = CR_Core с тем же результатом.
Почему моя работа с массивами в 4 раза медленнее? Спасибо за вашу помощь!
Заголовок моего массива, который я отправляю, выглядит следующим образом:
#!/bin/bash -l
#SBATCH --array=1-42
#SBATCH --job-name exp
#SBATCH --output logs/output_%A_%a.txt
#SBATCH --error logs/error_%A_%a.txt
#SBATCH --time=20:00
#SBATCH --mem=2048
#SBATCH --cpus-per-task=1
#SBATCH -w <NodeA>
Файл slurm.conf выглядит так:
ControlMachine=<NodeA>
ControlAddr=<IPNodeA>
MpiDefault=none
ProctrackType=proctrack/cgroup
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=<test_user_123>
StateSaveLocation=/var/spool/slurmctld
SwitchType=switch/none
TaskPlugin=task/affinity
MaxJobCount=100000
MaxArraySize=15000
MinJobAge=300
# 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/slurmctld.log
SlurmdLogFile=/var/log/slurmd.log
# COMPUTE NODES
#NodeName=NameA-D> State=UNKNOWN
NodeName=<NameA> NodeAddr=<IPNodeA> State=UNKNOWN CPUs=32 RealMemory=70363
NodeName=<NameB> NodeAddr=<IPNodeB> State=UNKNOWN CPUs=32 RealMemory=70363
NodeName=<NameC> NodeAddr=<IPNodeC> State=UNKNOWN CPUs=32 RealMemory=70363
NodeName=<NameD> NodeAddr=<IPNodeD> State=UNKNOWN CPUs=32 RealMemory=70363
PartitionName=debug Nodes=<NodeA-D> Default=YES MaxTime=INFINITE State=UP