使用 srun 或 salloc 启动交互式会话

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

我有相当多的 LSF 实践经验,这实际上干扰了我对 SLURM 的学习。

我对

srun
salloc
特别困惑,因为我无法将它们映射到我熟悉的任何 LSF 命令。

最重要的是,我对以下事实感到困惑:我遇到了几个启动交互式会话的“秘诀”,其中一些使用

srun
,而其他则使用
salloc

例如,在我有权访问的系统中,配置了 SLURM,以便以下两个命令中的任意一个将为我启动交互式 shell 会话:

$ srun --mem=$MEMORY --pty -- $SHELL $ salloc --mem=$MEMORY

srun

salloc
到底是什么关系? 
salloc
srun
 的特例吗?

slurm
1个回答
0
投票

srun

手册页
来看,srun
用于在由
SLURM(简单Linux资源管理实用程序)管理的集群上运行并行作业。 如果需要运行作业,它可以创建资源分配。
如示例中所述,命令
srun --mem=$MEMORY --pty -- $SHELL
 将交互式 shell 会话作为作业启动。 
--pty
 标志分配一个伪终端,这对于交互式会话很重要,并且 
$SHELL
 调用用户的默认 shell。

salloc

手册页
来看,salloc
用于为作业分配资源,并且它可以立即在这些分配的资源中执行命令。
如果向
salloc
提供命令,它将在分配必要的资源后运行该命令。
如果未指定命令,
salloc
 会分配资源并将控制权返回给用户的命令行,从而有效地为用户希望在分配的资源内运行的任何后续命令创建一个环境。

所以

salloc

可以有两种用途:

  • 使用命令:它分配资源并立即在这些资源中运行指定的命令。
  • 无命令:分配资源并返回命令行,允许用户在分配的环境中手动执行命令。

salloc

 不是 
srun
 的特例;相反,它们一起用于管理 SLURM 环境中作业处理和资源分配的不同方面。

    您可以使用
  • salloc
     分配资源,然后在该分配中使用 
    srun
     执行特定命令或作业。
  • 或者,
  • srun
     可以独立使用来一次性分配资源和执行命令。

在这两种情况下,它们都可以与“

IBM Spectrum LSF(负载共享设施)”作业调度程序的

bsub命令进行比较。

srun

 用于直接在分配的资源上执行作业或命令。如果不存在,它可以启动新的作业分配,或者在现有分配中运行。
LSF中的
bsub
首先用于向批处理系统提交作业。它根据资源可用性和系统策略来安排和管理作业。
比较:
srun
bsub
都用于作业执行,但
srun
提供更即时的执行,通常用于交互式会话或一次性任务。

salloc

 用于为作业分配资源,供立即或将来使用。分配后,您可以在此分配内运行
srun
来执行特定任务。

bsub
,与
salloc
类似,用于带有资源请求的作业提交。然而,
bsub
更专注于批处理的调度和排队作业。
对比:
salloc
bsub
都涉及资源分配,但
salloc
更多的是为后续命令创建环境,而
bsub
是关于提交和调度作业。

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