在 Cray Linux 上设置 LSF 集成的配置参数
过程
1.修改 $LSF_ENVDIR/lsf.conf。LSF 安装可能已添加以下部分参数:
- LSB_SHAREDIR=/ufs/lsfhpc/work -可供 root 用户和 LSF 管理员在 管理 主机和 Cray Linux 登录/服务节点上访问的共享文件系统。
- LSF_LOGDIR=/ufs/lsfhpc/log -可供 root 用户和 LSF 管理员在 管理 主机和 Cray Linux 登录/服务节点上访问的共享文件系统。
- LSF_LIVE_CONFDIR=/ufs/lsfhpc/work/<cluster_name>/live_confdir -可供 root 用户和 LSF 管理员在 管理 主机和 Cray Linux 登录/服务节点上访问的共享文件系统。
- LSB_RLA_PORT=21787 -唯一端口
- LSB_SHORT_HOSTLIST=1
- LSF_ENABLE_EXTSCHEDULER=Y
- LSB_SUB_COMMANDNAME=Y
- LSF_CRAY_PS_CLIENT=/usr/bin/apbasil
- LSF_LIMSIM_PLUGIN="liblimsim_craylinux"
- LSF_CRAYLINUX_FRONT_NODES="nid00060 nid00062" -启动并运行 LSF 守护程序的 Cray Linux 登录/服务节点的列表。
- LSF_CRAYLINUX_FRONT_NODES_POLL_INTERVAL=120 - 管理 主机 LIM 轮询 RLA 以查询计算机节点状态和配置信息的时间间隔。 缺省值为 120 秒。 任何小于 120 秒的值都将重置为缺省值
- LSB_MIG2PEND=1
- LSF_CRAY_RUR_DIR=/ufs/lsfhpc/work/<cluster_name>/craylinux/<cray_machine_name>/rur -RUR 数据文件的位置,这是可从任何可能的第一个执行主机访问的共享文件系统。 所有用户提交的作业的 RUR 数据文件名为 rur.output。 特定作业标识的特定于作业的 RUR 数据文件名为 rur.<jobID>。 缺省值为 LSF_SHARED_DIR/<cluster_name>/craylinux/<cray_machine_name>/rur。您可以使用 %U 特殊字符来表示提交作业的用户的主目录。 例如,如果指定 LSF_CRAY_RUR_DIR=%U/.rur以及 userA 和 userB 提交的作业,那么 RUR 数据文件位于 /home/userA/.rur 中 (对于 userA ) 和 /home/userB/.rur 中 (对于 userB)。
- LSF_CRAY_RUR_PROLOG_PATH=<path_to_rur_prologue.py> -RUR 序言脚本文件的文件路径。 缺省值为 /opt/cray/rur/default/bin/rur_prologue.py。
注: LSF 使用 -j <jobID> 选项运行 prolog 脚本文件。 因此,序言脚本文件必须支持以作业标识作为自变量的 -j 选项。
- LSF_CRAY_RUR_EPILOG_PATH=<path_to_rur_epilogue.py> -RUR 表日志脚本文件的文件路径。 缺省值为 /opt/cray/rur/default/bin/rur_epilogue.py。
注: LSF 使用 -j <jobID> 选项运行附日志脚本文件。 因此,该表日志脚本文件必须支持以作业标识作为自变量的 -j 选项。
2.从 Cray 登录节点,运行 $LSF_BINDIR/genVnodeConf 命令。
此命令以 BATCH 方式生成计算节点的列表。 您可以将计算节点添加到 $LSF_ENVDIR/lsf.cluster.<cluster_name>中的 HOST 部分。
HOSTNAME model type server r1m mem swp RESOURCES
nid00038 ! ! 1 3.5 () () (craylinux vnode)
nid00039 ! ! 1 3.5 () () (craylinux vnode)
nid00040 ! ! 1 3.5 () () (craylinux vnode)
nid00041 ! ! 1 3.5 () () (craylinux vnode)
nid00042 ! ! 1 3.5 () () (craylinux vnode gpu)
nid00043 ! ! 1 3.5 () () (craylinux vnode gpu)
nid00044 ! ! 1 3.5 () () (craylinux vnode)
nid00045 ! ! 1 3.5 () () (craylinux vnode)
nid00046 ! ! 1 3.5 () () (craylinux vnode)
nid00047 ! ! 1 3.5 () () (craylinux vnode)
nid00048 ! ! 1 3.5 () () (craylinux vnode)
nid00049 ! ! 1 3.5 () () (craylinux vnode)
nid00050 ! ! 1 3.5 () () (craylinux vnode)
nid00051 ! ! 1 3.5 () () (craylinux vnode)
nid00052 ! ! 1 3.5 () () (craylinux vnode gpu)
nid00053 ! ! 1 3.5 () () (craylinux vnode gpu)
nid00054 ! ! 1 3.5 () () (craylinux vnode)
nid00055 ! ! 1 3.5 () () (craylinux vnode)
nid00056 ! ! 1 3.5 () () (craylinux vnode)
nid00057 ! ! 1 3.5 () () (craylinux vnode)
3.配置 $LSF_ENVDIR/hosts。确保计算节点的 IP 地址与已在使用的任何 IP 地址都不冲突。
cat $LSF_ENVDIR/hosts10.128.0.34 nid00033 c0-0c1s0n3 sdb001 sdb002
10.128.0.61 nid00060 c0-0c1s1n0 login login1 castor-p2
10.128.0.36 nid00035 c0-0c1s1n3
10.128.0.59 nid00058 c0-0c1s2n0
10.128.0.38 nid00037 c0-0c1s2n3
10.128.0.57 nid00056 c0-0c1s3n0
10.128.0.58 nid00057 c0-0c1s3n1
10.128.0.39 nid00038 c0-0c1s3n2
10.128.0.40 nid00039 c0-0c1s3n3
10.128.0.55 nid00054 c0-0c1s4n0
10.128.0.56 nid00055 c0-0c1s4n1
10.128.0.41 nid00040 c0-0c1s4n2
10.128.0.42 nid00041 c0-0c1s4n3
10.128.0.53 nid00052 c0-0c1s5n0
10.128.0.54 nid00053 c0-0c1s5n1
10.128.0.43 nid00042 c0-0c1s5n2
10.128.0.44 nid00043 c0-0c1s5n3
10.128.0.51 nid00050 c0-0c1s6n0
10.128.0.52 nid00051 c0-0c1s6n1
10.128.0.45 nid00044 c0-0c1s6n2
10.128.0.46 nid00045 c0-0c1s6n3
10.128.0.49 nid00048 c0-0c1s7n0
10.128.0.50 nid00049 c0-0c1s7n1
10.128.0.47 nid00046 c0-0c1s7n2
10.128.0.48 nid00047 c0-0c1s7n3
10.131.255.251 sdb sdb-p2 syslog ufs
4.修改 $LSF_ENVDIR/lsbatch/<cluster_name>/configdir/lsb.hosts。确保在 MXJ 列中为同样是 LSF 服务器主机的 Cray Linux 登录节点和服务节点设置大量。 该数字应该大于 PE 总数。
Begin Host
HOST_NAME MXJ r1m pg ls tmp DISPATCH_WINDOW # Keywordsnid00060 9999 () () () () () # Examplenid00062 9999 () () () () () # Exampledefault ! () () () () () # Example
End Host
5.修改 $LSF_ENVDIR/lsbatch/<cluster_name>/configdir/lsb.queues。
- JOB_CONTROLS 和 RERUNNABLE 是必需的。
- 注释掉所有
loadSched
/loadStop
行。 - DEFAULT_EXTSCHED 和 MANDATORY_EXTSCHED 是可选的。
- 要运行 CCM 作业,必须从 Cray 获取执行前和执行后二进制文件。 请参阅 Cray 文档以查找这些文件。
Begin QueueQUEUE_NAME = normalPRIORITY = 30NICE = 20PREEMPTION = PREEMPTABLEJOB_CONTROLS = SUSPEND[bmig $LSB_BATCH_JID]RERUNNABLE = Y#RUN_WINDOW = 5:19:00-1:8:30 20:00-8:30#r1m = 0.7/2.0 # loadSched/loadStop#r15m = 1.0/2.5#pg = 4.0/8#ut = 0.2#io = 50/240#CPULIMIT = 180/hostA # 3 hours of hostA#FILELIMIT = 20000#DATALIMIT = 20000 # jobs data segment limit#CORELIMIT = 20000
#TASKCLIMIT = 5 # job task limit
#USERS = all # users who can submit jobs to this queue#HOSTS = all # hosts on which jobs in this queue can run#PRE_EXEC = /usr/local/lsf/misc/testq_pre >> /tmp/pre.out#POST_EXEC = /usr/local/lsf/misc/testq_post |grep -v "Hey"#REQUEUE_EXIT_VALUES = 55 34 78#APS_PRIORITY = WEIGHT[[RSRC, 10.0] [MEM, 20.0] [PROC, 2.5] [QPRIORITY, 2.0]] \#LIMIT[[RSRC, 3.5] [QPRIORITY, 5.5]] \#GRACE_PERIOD[[QPRIORITY, 200s] [MEM, 10m] [PROC, 2h]]DESCRIPTION = For normal low priority jobs, running only if hosts are lightly loaded.
End QueueBegin QueueQUEUE_NAME = ownersPRIORITY = 43JOB_CONTROLS = SUSPEND[bmig $LSB_BATCH_JID]RERUNNABLE = YESPREEMPTION = PREEMPTIVENICE = 10#RUN_WINDOW = 5:19:00-1:8:30 20:00-8:30r1m = 1.2/2.6#r15m = 1.0/2.6#r15s = 1.0/2.6pg = 4/15io = 30/200swp = 4/1tmp = 1/0#CPULIMIT = 24:0/hostA # 24 hours of hostA#FILELIMIT = 20000#DATALIMIT = 20000 # jobs data segment limit#CORELIMIT = 20000
#TASKLIMIT = 5 # job task limit
#USERS = user1 user2#HOSTS = hostA hostB#ADMINISTRATORS = user1 user2#PRE_EXEC = /usr/local/lsf/misc/testq_pre >> /tmp/pre.out#POST_EXEC = /usr/local/lsf/misc/testq_post |grep -v "Hey"#REQUEUE_EXIT_VALUES = 55 34 78DESCRIPTION = For owners of some machines, only users listed in the HOSTS\section can submit jobs to this queue.
End Queue
6.修改 $LSF_ENVDIR/lsf.shared。
确保在 resource 部分中定义了以下布尔资源:
vnode Boolean () () (sim node)
gpu Boolean () () (gpu)
frontnode Boolean () () (login/service node)
craylinux Boolean () () (Cray XT/XE MPI)
7.缺省情况下,为 LSF 启用了 LSF_CRAY_RUR_ACCOUNTING=Y 以使用资源实用程序报告 (RUR)。 如果环境中未安装 RUR ,那么必须通过在 lsf.conf中设置 LSF_CRAY_RUR_ACCOUNTING=N 来禁用 RUR。
8.修改 /etc/opt/cray/rur/rur.conf。
通过在 apsys
部分中注释掉以下行来禁用缺省 prolog 和 epilog 脚本:
apsys# prologPath - location of the executable file to be run before application
# prologPath /usr/local/adm/sbin/prolog
# epilogPath - location of the executable file to be run after application
# epilogPath /usr/local/adm/sbin/epilog
# prologTimeout - time in seconds before prolog is aborted as "hung"
# prologTimeout 10
# epilogTimeout - time in seconds before epilog is aborted as "hung"
# epilogTimeout 10
# prologPath /opt/cray/rur/default/bin/rur_prologue.py
# epilogPath /opt/cray/rur/default/bin/rur_epilogue.py
# prologTimeout 100
# epilogTimeout 100/apsys
9.修改 /etc/opt/cray/alps/alps.conf。
通过在 apsys
部分中注释掉以下行来禁用缺省 prolog 和 epilog 脚本:
apsys# prologPath - location of the executable file to be run before application
# prologPath /usr/local/adm/sbin/prolog
# epilogPath - location of the executable file to be run after application
# epilogPath /usr/local/adm/sbin/epilog
# prologTimeout - time in seconds before prolog is aborted as "hung"
# prologTimeout 10
# epilogTimeout - time in seconds before epilog is aborted as "hung"
# epilogTimeout 10
# prologPath /opt/cray/rur/default/bin/rur_prologue.py
# epilogPath /opt/cray/rur/default/bin/rur_epilogue.py
# prologTimeout 100
# epilogTimeout 100/apsys
10.重新启动登录节点上的 alps 守护程序以将更改应用于 alps.conf 和 rur.conf 文件。
/etc/init.d/alps restart
11.使用 service 命令可根据需要启动和停止 LSF 服务。
- service LSF-HPC start
- service LSF-HPC stop