У меня есть установка SLURM на одном узле CentOS 7 с 64 ядрами (128 процессоров). Я использую SLURM для успешной отправки заданий, используя оба бежать
и отрывок
. Однако с оговоркой, что я не выделяю память. Я могу выделить процессоры, но не память.
Когда я пытаюсь выделить память, я получаю
sbatch: ошибка: Спецификация памяти не может быть удовлетворена
sbatch: ошибка: не удалось отправить пакетное задание: запрошенная конфигурация узла недоступна
Так что это будет работать
#!/бин/баш
#SBATCH --job-name=имя
#SBATCH --output=имя.txt
#SBATCH --cpus-per-task=10
#SBATCH --time=6-59:00
Но это не запустится
#!/бин/баш
#SBATCH --job-name=имя
#SBATCH --output=имя.txt
#SBATCH --cpus-per-task=10
#ДОПОЛНИТЕЛЬНО --mem=2000M
#SBATCH --time=6-59:00
аналогично это не запустится
#!/бин/баш
#SBATCH --job-name=имя
#SBATCH --output=имя.txt
#SBATCH --cpus-per-task=10
#SBATCH --mem-per-cpu=2000M
#SBATCH --time=6-59:00
Оба дают вышеуказанное сообщение об ошибке.
Это боль, потому что теперь, когда я начинаю максимально использовать процессор, у меня возникают конфликты и сбои заданий, и я считаю, что это из-за неправильного распределения памяти, поэтому программы будут аварийно завершать работу с плохое распределение
сообщения об ошибках или просто остановить работу. Я довольно часто использовал SLURM на вычислительных кластерах Канады, и выделение памяти не было проблемой. Проблема в том, что я запускаю SLURM на одном узле, который также является узлом входа? или что я, по сути, использую настройки по умолчанию и мне нужно выполнить некоторую работу администратора?
Я пробовал использовать разные единицы памяти, такие как 2G
скорее, чем 2000М
и я пытался использовать 1024М
тоже, но безрезультатно.
Файл slurm.conf
имя_кластера=линукс
ControlMachine=фиктивное имя
ControlAddr=фиктивный адрес
#РезервныйКонтроллер=
#РезервныйАдрес=
#
#SlurmUser=слёрм
SlurmdUser=корень
SlurmctldPort=фиктивный порт
SlurmdPort=фиктивный порт+1
AuthType=auth/манж
#JobCredentialPrivateKey=
#JobCredentialPublicCertificate=
StateSaveLocation=/var/lib/slurm
SlurmdSpoolDir=/tmp/slurmd
SwitchType=переключатель/нет
MpiDefault=нет
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/pgid
#PluginDir=
#FirstJobId=
Возврат ТоСервис=1
#MaxJobCount=
#PlugStackConfig=
#PropagatePrioProcess=
#Пропагатересурслимитс=
#PropagateResourceLimitsExcept=
#Пролог=
#Эпилог=
#SrunProlog=
#SrunEpilog=
#TaskProlog=
#TaskEpilog=
#TaskPlugin=
#TrackWCKey=нет
#ДеревоШирина=50
#TmpFS=
#ИспользоватьPAM=
#
# ТАЙМЕРЫ
SlurmctldTimeout=300
SlurmdTimeout=300
Инактивлимит=0
Минимальный возраст = 300
KillWait=30
Время ожидания=0
#
# ПЛАНИРОВАНИЕ
SchedulerType=sched/backfill
#SchedulerAuth=
#SchedulerPort=
#SchedulerRootFilter=
SelectType=выбрать/cons_res
SelectTypeParameters=CR_CORE
#FastSchedule=1
#PriorityType=приоритет/многофакторность
#PriorityDecayHalfLife=14-0
#PriorityUsageResetPeriod=14-0
#PriorityWeightFairshare=100000
#PriorityWeightAge=1000
#PriorityWeightPartition=10000
#PriorityWeightJobSize=1000
#PriorityMaxAge=1-0
#
# ВЕДЕНИЕ ЖУРНАЛА
#DebugFlags=gres
SlurmctldDebug=3
#SlurmctldLogFile=
Слурмддебуг=3
#SlurmdLogFile=
JobCompType=jobcomp/none
#JobCompLoc=
#
# БУХГАЛТЕРИЯ
#JobAcctGatherType=jobacct_gather/linux
#JobAcctGatherFrequency=30
#
#AccountingStorageType=accounting_storage/slurmdbd
#AccountingStorageHost=
#AccountingStorageLoc=
#AccountingStoragePass=
#AccountingStorageUser=
#
# ВЫЧИСЛИТЕЛЬНЫХ УЗЛОВ
GresTypes=ГП
NodeName=dummyname CoresPerSocket=64 Sockets=1 ThreadsPerCore=2 State=IDLE Gres=gpu:2
#NodeName=dummyname CoresPerSocket=64 Sockets=1 ThreadsPerCore=2 State=IDLE
PartitionName=all Nodes=dummyname По умолчанию=YES Shared=Yes MaxTime=INFINITE State=UP