启动 IBM LSF CE 并运行 HPC 版的 Hello World

开始启动

安装过程通常很快。安装完成后,咱们现在就可以启动 IBM Spectrum LSF Community Edition,让其准备好接受并管理作业。在此之前,让我们先了解一些 LSF 的概念及术语,这将有助于理解下面的内容。

LSF 设计用于在内部及云上的主机(或虚拟机)集群上运行。LSF 集群必须至少包含一台管理主机,咱们可将其视为集群的协调器,the orchestrator for the cluster。他会运行调度程序,根据从环境中所有服务器收集到的负载信息,决定将工作放在何处。LSF 管理主机,management host,会运行以下守护进程:

  • 管理的主机负载信息管理程序(LIM, Load Information Manager);

  • 资源执行服务器(RES, Resource Execution Server);

  • 服务器批处理守护进程(SBATCHD, Server Batch Daemon);

  • 管理批处理守护进程(MBATCHD, Management Batch Daemon)。

LSF 群集还可以配置一个备份的管理节点,即 候选管理主机,management candidate host。在 管理主机,management host 不论因何种原因不可用时,该主机便可以接管下来。从 管理主机候选管理主机 的故障切换,对终端用户来说是无缝的。

而 LSF 服务器,便是集群中的 "工蜂",LSF servers are the worker bees in the cluster -- LSF 会将作业发送到这些系统进行处理。请注意,在需要时,LSF 管理主机也可以运行批处理作业。LSF 服务器主机运行着以下守护进程:

  • 服务器的主机负载信息管理程序(LIM, Load Information Manager)

  • 资源执行服务器(RES, Resource Execution Server);

  • 服务器批处理守护进程(SBATCHD, Server Batch Daemon);

这个 LSF 集群中只有一台服务器。因此,他既是 LSF 管理节点,也是 LSF 服务器,可以运行作业。下面咱们将使用一些命令,来启动 LSF 以及提交和管理作业。下面将简要介绍这些命令:

  • lsadmin - 控制 LIM 与 RES 守护进程的启动;

  • badmin - 控制 SBATCHD 与 LSF 批处理系统;

  • lsid - 显示有关该 LSF 集群的基本信息;

  • lsload - 显示 LSF 主机的负载信息;

  • bhosts - 显示 LSF 主机的批处理系统状态;

  • bsub - 提交一个作业到 LSF;

  • bjobs - 显示 LSF 作业的信息。

而随着 IBM Spectrum LSF CE 环境的建立。这将配置 PATH 及其他所需的环境变量。LSF 守护进程使用 lsadminbadmin 命令启动。

root@sta-f4-d:/opt/ibm/lsfce/conf# pwd
/opt/ibm/lsfce/conf
root@sta-f4-d:/opt/ibm/lsfce/conf# . ./profile.lsf
root@sta-f4-d:/opt/ibm/lsfce/conf# lsadmin limstartup
Starting up LIM on <sta-f4-d.xfoss.com> ...... done
root@sta-f4-d:/opt/ibm/lsfce/conf# lsadmin resstartup
Starting up RES on <sta-f4-d.xfoss.com> ...... done
root@sta-f4-d:/opt/ibm/lsfce/conf# badmin hstartup
Starting up server batch daemon on <sta-f4-d.xfoss.com> ...... done

以非根用户身份,a non-rout user,请如上所示,为 IBM Spectrum LSF CE 创建环境,并检查群集状态。在下文中,咱们会用到用户命令 lsidlsloadbhosts,确认 LSF 集群已经启动并运行,可以接受作业。有关这些命令的更多信息,请参阅 IBM 文档

lenny.peng@sta-f4-d:/opt/ibm/lsfce/conf$ pwd
/opt/ibm/lsfce/conf
lenny.peng@sta-f4-d:/opt/ibm/lsfce/conf$ . ./profile.lsf
lenny.peng@sta-f4-d:/opt/ibm/lsfce/conf$ lsid
IBM Spectrum LSF Community Edition 10.1.0.12, Jun 10 2021
Copyright IBM Corp. 1992, 2016. All rights reserved.
US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

My cluster name is hpc.xfoss.com
My master name is sta-f4-d.xfoss.com
lenny.peng@sta-f4-d:/opt/ibm/lsfce/conf$ lsload
HOST_NAME       status  r15s   r1m  r15m   ut    pg  ls    it   tmp   swp   mem
sta-f4-d.sensco     ok   0.2   0.7   0.7   1%   0.0   2     0  452G  3.8G 13.3G
lenny.peng@sta-f4-d:/opt/ibm/lsfce/conf$ bhosts
HOST_NAME          STATUS       JL/U    MAX  NJOBS    RUN  SSUSP  USUSP    RSV
sta-f4-d.xfoss. ok              -     14      0      0      0      0      0

提交作业

在高性能计算调度程序的世界里,睡眠作业就类似于运行一个 "hello world" 程序。因此,在第一次测试中,咱们以集群非根用户的身份,提交了一个简短的睡眠作业。咱们会提交一个 10 秒钟的睡眠作业,并将作业输出写入 output.<JOBID> 文件。作业完成后,我们将显示输出文件的内容。

lenny.peng@sta-f4-d:~$ bsub -o output.%J /bin/sleep 10
Job <1> is submitted to default queue <normal>.
lenny.peng@sta-f4-d:~$ bjobs
JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
1       lenny.p RUN   normal     sta-f4-d.se sta-f4-d.se */sleep 10 Oct 11 14:15
lenny.peng@sta-f4-d:~$ bjobs
JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
1       lenny.p RUN   normal     sta-f4-d.se sta-f4-d.se */sleep 10 Oct 11 14:15
lenny.peng@sta-f4-d:~$ bjobs
No unfinished job found
lenny.peng@sta-f4-d:~$ more output.1
Sender: LSF System <lsfadmin@sta-f4-d.xfoss.com>
Subject: Job 1: </bin/sleep 10> in cluster <hpc.xfoss.com> Done

Job </bin/sleep 10> was submitted from host <sta-f4-d.xfoss.com> by user <lenny.peng> in cluster <hpc.xfoss.com> at Wed Oct 11 14:15:
52 2023
Job was executed on host(s) <sta-f4-d.xfoss.com>, in queue <normal>, as user <lenny.peng> in cluster <hpc.xfoss.com> at Wed Oct 11 14
:15:52 2023
</home/lenny.peng> was used as the home directory.
</home/lenny.peng> was used as the working directory.
Started at Wed Oct 11 14:15:52 2023
Terminated at Wed Oct 11 14:16:03 2023
Results reported at Wed Oct 11 14:16:03 2023

Your job looked like:

------------------------------------------------------------
# LSBATCH: User input
/bin/sleep 10
------------------------------------------------------------

Successfully completed.

Resource usage summary:

    CPU time :                                   0.05 sec.
    Max Memory :                                 13 MB
    Average Memory :                             13.00 MB
    Total Requested Memory :                     -
    Delta Memory :                               -
    Max Swap :                                   -
    Max Processes :                              3
    Max Threads :                                4
    Run time :                                   16 sec.
    Turnaround time :                            11 sec.

The output (if any) follows:


Last change: 2023-10-13, commit: c107333