slurm限制spwaned进程的数量

问题描述 投票:0回答:1

我是一个新手试图安装/管理slurm。我想限制一个slurm工作可以做的分叉量。我使用了stress命令来查看slurm的CPU利用率。

当我运行这个批处理脚本时

#SBATCH -p Test -c 1
stress -c 1

这项工作运行良好,一个核心100%使用。但是这个剧本

#SBATCH -p Test -c 1
stress -c 20

也运行但top命令给出了20PID的列表,每个分配的CPU利用率为5%。这是有道理的,因为总利用率为1 CPU核心100%。这使得我通过谷歌搜索学习的负载平均值变得疯狂,不是正确的系统负载视图。我有两个问题

  1. 是否有可能通过杀死第二次运行来限制管理配置中的这种行为。迄今为止我的各种尝试都没有产生任何结果。 slurm配置了cgroup并且可以很好地杀死内存作业。没有使用或配置MPI。
  2. 由于进程等待时间,此行为是否会导致效率低下?

我尝试设置这些激烈的参数来检查是否有事情发生。

MaxStepCount = 1 MaxTasksPerNode = 2

但令人惊讶的是没有任何事情发生,在此之后我可以提交更多的工作

fork slurm
1个回答
0
投票

Slurm的工作是为用户工作分配计算资源。可管理的最低计算单位在文档中称为CPU。这指的是处理线程/执行核心,而不是物理核心。 Slurm不监督工作如何管理这些资源。所以不,Slurm中的任何内容都无法杀死具有太多用户态线程的作业。

运行那么多线程可能会影响效率,是的。除非作业有足够的CPU线程来处理它们,否则所有这些线程都会导致增加上下文切换。

MaxStepCount和MaxTasksPerNode用于作业。此上下文中的“任务”不是用户态线程,而是由作业步骤启动的单独进程。

我希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.