使用SLURM进行时间测量

时间:2014-06-17 15:50:17

标签: slurm

我创建了许多程序,我想从中测量完成所需的时间。因此,我想在一个节点上运行一个任务。我们有10个节点,每个节点有2个套接字。无论我传递给sbatch和srun的选项是什么,SLURM似乎每个套接字安排1个任务而不是每个节点1个任务。我应该使用哪些选项?

我使用sbatch run-experiments

启动我的批处理脚本

run-experiments包含:

#SBATCH -N10 --ntasks-per-node=1
...
for 1..1000 do
    srun -N1 -n1 --exclusive task &
done

编辑:似乎问题只发生在一个分区而不是另一个分区上。是否有可能导致此问题的配置设置?

2 个答案:

答案 0 :(得分:0)

这并不能完全回答你的问题,但我认为你在脚本中的“完成”之后错过了“等待”。没有等待,你的sbatch将在提交最后一份工作后立即返回,而没有给出完成某些任务的时间。

对于您的问题,您需要检查分区定义中的“Shared”参数。

答案 1 :(得分:0)

您可能有

SelectType=select/cons_res
SelectTypeParameters=CR_CORE

在您的slurm.conf中,

这2行定义了即将进行的作业的资源选择。 它在slurm版本slurm 17.11.7上进行了测试,并使用了以下slurm.conf

#
# Example slurm.conf file. Please run configurator.html
# (in doc/html) to build a configuration file customized
# for your environment.
#
#
# slurm.conf file generated by configurator.html.
#
# See the slurm.conf man page for more information.
#
ClusterName=kaleidoscope
ControlMachine=headnode
#
SlurmUser=slurm
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
#
StateSaveLocation=/var/spool/slurm/ctld
SlurmdSpoolDir=/var/spool/slurm/d
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/pgid
#
# TIMERS
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
#
# SCHEDULING
SchedulerType=sched/backfill
FastSchedule=1
#
# LOGGING
SlurmctldDebug=3
SlurmctldLogFile=/var/log/slurmctld.log
SlurmdDebug=3
SlurmdLogFile=/var/log/slurmd.log
JobCompType=jobcomp/none
#
# COMPUTE NODES
#
PropagateResourceLimitsExcept=MEMLOCK
AccountingStorageType=accounting_storage/filetxt
Epilog=/etc/slurm/slurm.epilog.clean
NodeName=node[1-2] Sockets=2 CoresPerSocket=1 ThreadsPerCore=1 State=UNKNOWN
PartitionName=normal Nodes=node[1-2] Default=YES MaxTime=24:00:00 State=UP
ReturnToService=1

#SelectType=select/cons_res
#SelectTypeParameters=CR_CORE
相关问题