0

我创建了许多程序,我想从中测量完成所需的时间。因此我想在一个节点上运行一项任务。我们有 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

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

4

2 回答 2

0

这并不能完全回答您的问题,但我认为您在脚本中的“完成”之后缺少“等待”。无需等待,您的 sbatch 将在提交最后一个作业后立即返回,而无需为某些任务留出时间来完成。

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

于 2015-02-26T10:24:39.090 回答
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
于 2019-06-19T08:56:06.133 回答