Рейтинг:2

Управление памятью SLURM при установке с одним узлом (проблемы)

флаг it

У меня есть установка 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
флаг in
Не могли бы вы поделиться своими файлами slurm.conf и cgroup.conf?
Wesley avatar
флаг it
@GeraldSchneider Я добавил файл `slurm.conf`. Похоже, что `cgroup.conf` не существует. В `/slurm/` есть файл `cgroup.conf.example`, но это все.
флаг in
Вы не определили конфигурацию памяти для своего узла. Попробуйте добавить параметр `RealMemory=` в строку `NodeName=`.
Wesley avatar
флаг it
@GeraldSchneider Я все еще получаю сообщение об ошибке. Я добавил `RealMemory=200000` в строку
Wesley avatar
флаг it
Я также получаю ту же ошибку, когда пытаюсь добавить SelectTypeParameters=CR_CPU_Memory и другие варианты, связанные с памятью.
Wesley avatar
флаг it
Есть еще идеи @GeraldSchneider? 50 баллов - это немного, но это честные баллы :)
Nathan Musoke avatar
флаг cn
@wesley, я смог исправить ту же ошибку, установив `MaxMemPerNode`. См. https://slurm.schedmd.com/cons_res_share.html

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.