Am configurarea SLURM pe un singur nod CentOS 7 cu 64 de nuclee (128 CPU-uri). Am folosit SLURM pentru a trimite joburi cu succes folosind ambele srun
și lot
. Cu toate acestea, cu avertismentul că nu aloca memorie. Pot aloca CPU-uri, dar nu și memorie.
Când încerc să aloc memorie, primesc
sbatch: eroare: specificația memoriei nu poate fi satisfăcută
sbatch: eroare: Trimiterea jobului în lot a eșuat: Configurația nodului solicitată nu este disponibilă
Deci asta va rula
#!/bin/bash
#SBATCH --job-name=nume
#SBATCH --output=name.txt
#SBATCH --cpus-per-task=10
#SBATCH --time=6-59:00
Dar asta nu va rula
#!/bin/bash
#SBATCH --job-name=nume
#SBATCH --output=name.txt
#SBATCH --cpus-per-task=10
#SBATCH --mem=2000M
#SBATCH --time=6-59:00
în mod similar, acesta nu va rula
#!/bin/bash
#SBATCH --job-name=nume
#SBATCH --output=name.txt
#SBATCH --cpus-per-task=10
#SBATCH --mem-per-cpu=2000M
#SBATCH --time=6-59:00
Ambele dau mesajul de eroare de mai sus.
Aceasta este o durere pentru că acum, când încep să maximizez utilizarea procesorului, am locuri de muncă care se ciocnesc și eșuează și cred că este pentru că nu există o alocare adecvată a memoriei, așa că programele se vor bloca cu aloc rău
mesaje de eroare sau pur și simplu opriți rularea. Am folosit destul de mult SLURM pe clusterele Compute Canada, iar alocarea memoriei nu a fost nicio problemă. Problema este că rulez SLURM pe un singur nod care este și nodul de conectare? sau că, în esență, folosesc setările implicite și trebuie să fac ceva de administrare?
Am încercat să folosesc diferite unități pentru memorie, cum ar fi 2G
Decat 2000M
si am incercat sa folosesc 1024M
la fel, dar fără niciun rezultat.
Fișierul slurm.conf este
ClusterName=linux
ControlMachine=nume fals
ControlAddr=adresă inactivă
#BackupController=
#BackupAddr=
#
#SlurmUser=slurm
SlurmdUser=rădăcină
SlurmctldPort=port fals
SlurmdPort=dummyport+1
AuthType=auth/munge
#JobCredentialPrivateKey=
#JobCredentialPublicCertificate=
StateSaveLocation=/var/lib/slurm
SlurmdSpoolDir=/tmp/slurmd
SwitchType=comutator/niciunul
MpiDefault=niciunul
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/pgid
#PluginDir=
#FirstJobId=
ReturnToService=1
#MaxJobCount=
#PlugStackConfig=
#PropagatePrioProcess=
#PropagateResourceLimits=
#PropagateResourceLimitsExcept=
#Prolog=
#Epilog=
#SrunProlog=
#SrunEpilog=
#TaskProlog=
#TaskEpilog=
#TaskPlugin=
#TrackWCKey=nu
#TreeWidth=50
#TmpFS=
#UsePAM=
#
# TIMER
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Timp de așteptare=0
#
# PROGRAMARE
SchedulerType=programat/reumplere
#SchedulerAuth=
#SchedulerPort=
#SchedulerRootFilter=
SelectType=select/cons_res
SelectTypeParameters=CR_CORE
#FastSchedule=1
#PriorityType=prioritate/multifactor
#PriorityDecayHalfLife=14-0
#PriorityUsageResetPeriod=14-0
#PriorityWeightFairshare=100000
#PriorityWeightAge=1000
#PriorityWeightPartition=10000
#PriorityWeightJobSize=1000
#PriorityMaxAge=1-0
#
# LOGARE
#DebugFlags=gres
SlurmctldDebug=3
#SlurmctldLogFile=
SlurmdDebug=3
#SlurmdLogFile=
JobCompType=jobcomp/none
#JobCompLoc=
#
# CONTABILITATE
#JobAcctGatherType=jobacct_gather/linux
#JobAcctGatherFrequency=30
#
#AccountingStorageType=accounting_storage/slurmdbd
#AccountingStorageHost=
#AccountingStorageLoc=
#AccountingStoragePass=
#AccountingStorageUser=
#
# NOduri de calcul
GresTypes=gpu
NodeName=dummyname CoresPerSocket=64 Sockets=1 ThreadsPerCore=2 State=IDLE Gres=gpu:2
#NodeName=dummyname CoresPerSocket=64 Sockets=1 ThreadsPerCore=2 State=IDLE
PartitionName=toate Nodurile=dummyname Implicit=YES Shared=Da MaxTime=INFINITE State=UP