LSF执行前和执行后处理

本文详细解释了LSF中基于作业的执行前处理和执行后处理,以及基于主机的处理方式,涵盖了它们的应用场景、限制和配置注意事项。特别关注了批处理作业、操作系统兼容性和权限要求。
摘要由CSDN通过智能技术生成

执行前和执行后处理功能包括两种类型:

  • 基于作业的执行前和执行后处理,适用于顺序作业并且仅在第一个执行主机上运行。
  • 基于主机的执行前和执行后处理,适用于并行作业并在所有执行主机上运行。
您可以使用执行前和执行后处理在批处理作业开始之前或完成之后运行命令。此功能的典型用途包括:
  • 保留无法在 LSF 中直接配置的资源,例如磁带驱动器和其他设备
  • 除 LSF 直接支持的动作外,还做出作业启动决策
  • 创建和删除作业的临时目录
  • 根据预执行命令的退出码自定义调度
  • 检查软件许可证的可用性
  • 分配作业在 SMP 计算机上的特定处理器上运行
  • 传输作业执行所需的数据文件
  • 在作业执行前后修改系统配置文件
  • 使用执行后命令清除执行前命令或作业留下的状态

任何可执行命令行都可以作为执行前或执行后命令。默认情况下,命令在与作业相同的用户帐户、环境、主目录和工作目录下运行。

当在应用程序配置文件或lsb.params中定义 JOB_INCLUDE_POSTPROC时,当作业处于 post exec 阶段(常规作业为 DONE 状态)时,该作业被视为处于 RUN 状态。

基于作业的执行前和执行后处理

可以在队列、应用程序和作业级别定义基于作业的预执行和执行后命令。

对于 UNIX 和 Linux,命令路径最多可包含 4094 个字符,对于 Windows,最多可包含 255 个字符,包括目录、文件名以及 %J (job_ID ) 和 %I ( index_ID ) 的扩展值。

当作业调整大小时,作业增长请求将被忽略。但是,可以处理作业缩减请求。无论哪种情况,LSF 都不会调用作业调整大小通知命令。

下图显示了基于作业的执行前和执行后处理的默认行为(未启用该功能):

以下示例说明了基于作业的执行前和执行后处理如何在队列或应用程序级别作业,以便在作业执行之前设置环境以及在作业运行后传输结果文件。

下表提供了基于作业的执行前和执行后处理的范围:


适用性
细节
操作系统
  • UNIX系统
  • windows系统
  • UNIX 和 Windows 主机的混合
依赖关系
  • UNIX 和 Windows 用户帐户必须在群集中的所有主机上有效,并且必须具有正确的权限才能成功运行作业。
  • 在 Windows Server 2003 x64 Edition 平台上,用户必须具有 cmd.exe的读取和执行权限。
局限性
  • 仅适用于批处理作业(使用bsub命令提交的作业)

基于主机的执行前和执行后处理

基于主机的执行前和执行后处理与基于作业的执行前和执行后处理不同,它适用于并行作业(您也可以将此功能用于顺序作业)并且在所有执行主机上执行,而不仅仅是第一个执行主机。这样做的目的是在所有基于作业的预执行和其他依赖于基于主机的准备的预处理之前设置执行主机,并在基于作业的后执行和其他后处理之后清理执行主机。

此功能可以通过多种方式使用。例如:

  • HPC 站点可以通过多种方式在实际启动作业之前检查系统运行状况,例如检查主机或节点状态、关键文件系统是否已挂载、infiniband 是否正在工作、所需的目录、文件、环境以及设置正确的用户权限等.)
  • 管理员可以配置站点特定策略来运行基于主机的执行前和执行后处理,以设置对计算机节点的 ssh 访问。默认情况下,ssh 处于禁用状态。但是,通过基于主机的执行前和执行后处理,可以在作业生命周期期间启用对为作业分配的节点的 ssh 访问。这是在非第一执行主机上调试并行作业所必需的,并且不会影响整体集群安全策略。
  • 管理员可以配置基于主机的执行前和执行后处理,以在每个主机上创建并随后删除临时工作目录。

您可以在应用程序级别和队列级别定义基于主机的执行前和执行后处理。还支持故障处理。

有两种方法可以为作业启用基于主机的执行前和执行后处理:

  • 在 lsb.queues中配置HOST_PRE_EXECHOST_POST_EXEC
  • 在 lsb.applications中配置HOST_PRE_EXECHOST_POST_EXEC

配置基于主机的执行前和执行后处理时,请注意以下事项:

  • 仅 UNIX 支持基于主机的执行前和执行后处理。
  • 基于主机的执行前和执行后处理不支持在输出中返回某些环境变量以及为作业设置这些环境变量。
  • 如果作业处于基于主机的预执行处理阶段,sbatchd会拒绝任何不是终止信号的信号,并请求再次发送该信号。如果作业处于基于主机的执行后处理阶段,则无论JOB_INCLUDE_POSTPROC如何定义,作业信号都会被拒绝或忽略。
  • 您不能将JOB_PREPROC_TIMEOUT或 JOB_POSTPROC_TIMEOUT的默认值用于基于主机的执行前和执行后处理。根据基于主机的执行前和执行后处理运行所需的时间配置一个值。
  • 在基于主机的预执行处理完成之前,无法执行检查点。在此期间,sbatchd返回重试错误。
  • 从 LSF 版本 9.1.2 开始,基于主机的执行前和执行后处理将不会在作业通过自动调整大小扩展到的已分配主机上执行。
  • 基于主机的执行前和执行后处理将租入主机视为与本地主机相同。
  • 如果将具有基于主机的执行前或执行后处理的作业分派到 Windows 主机,则该作业将失败,然后显示待处理原因。
  • 由于基于主机的执行前和执行后处理未在作业级别定义,因此多集群转发和 XL作业不会获取本地队列和应用程序基于主机的执行前和执行后处理信息,而是遵循远程队列和应用程序配置。
  • 仅 LSF 9.1.2 及后续版本支持基于主机的执行前和执行后处理功能。
  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱算数

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值