如何根据位置或分区限制作业提交

how to limit job submision depending on location or partition

我想知道是否有一种方法可以根据在 HPC 中进行提交的位置来限制作业提交。

事情是,最近添加了暂存盘存储。所以现在我有两个分区。

  1. 主目录
  2. 临时目录

我希望所有 HPC 用户都被迫只在 scratch 目录而不是主目录中提交他们的作业。

HPC 正在为作业计划程序运行 LSF。那么,我能否通过 LSF 控制作业提交(即 bsub),以便只有在 scratch 目录下提交的作业才能在 HPC 中运行?

提前致谢。

我认为没有办法在本地执行此操作,但有一种方法可以自定义 LSF 提交时检查以拒绝从错误目录提交的作业。查看此文档:

https://www.ibm.com/support/knowledgecenter/en/SSWRJV_10.1.0/lsf_admin/chap_sub_exec_controls_lsf_admin.html

特别是,您要做的是定义一个 esub 脚本来检查适当的提交 CWD。假设您将脚本命名为 esub.dircheck,它看起来像这样:

#!/bin/sh 

# Reject if submission is under /home
if [[ $PWD/ = /home/* ]]; then
   echo "Job submission from /home forbidden"
   exit $LSB_SUB_ABORT_VALUE 
fi 

现在您可以将 esub.dircheck 放入 $LSF_SERVERDIR(确保它对所有人都可执行)。最后,如果您希望每次作业提交都进行检查,请在 lsf.conf 中设置以下参数:

LSB_ESUB_METHOD=dircheck

最后一点:我只是检查 PWD 在上面的代码中是否有 home 作为前缀,但如果你想确保你所在的目录,你可能需要做一些更复杂的事情在 /home 下,因为可能有符号链接会破坏前缀检查。 Take a look at this answer for details.