Linux搭建Slurm和pbs单机版

打印 上一主题 下一主题

主题 960|帖子 960|积分 2880

Slurm


Slurm 是高性能盘算集群的精彩工作调度工具。此外,当你需要同时运行多个程序并将它们排成队列,同时确保盘算机或服务器不超载时,它也是本地台式机或单台服务器上的告急工具。此外,在与其他用户共享服务器或需要通宵或连续数周运行多个工作时,它也非常有效!在这里,我将向你展示如何在使用 ubuntu单台呆板上快速设置 slurm。你将不再需要为运行多个程序而编写紊乱无章的脚本,以避免超出硬件限制或与同事争论谁的程序先运行。
让我们先用 apt 安装,对于根本的单机设置,只需要控制守护程序 slurmctld 和盘算节点守护程序 slurmd 这两个软件包:
  1. $ sudo apt update -y
  2. $ sudo apt install slurmd slurmctld -y
复制代码
接下来,我们需要创建 slurm.conf 文件,配置 slurm 队列的设置方式。这里我们使用一个非常简朴的文件:(请根据你的呆板规格调整 COMPUTE NODES 部门,例如,如果你有 10 个内核 CPU=10,内存为 32000MB RealMemory=32000 .
  1. # slurm.conf file generated by configurator.html.
  2. # Put this file on all nodes of your cluster.
  3. # See the slurm.conf man page for more information.
  4. #
  5. ClusterName=localcluster
  6. SlurmctldHost=localhost
  7. MpiDefault=none
  8. ProctrackType=proctrack/linuxproc
  9. ReturnToService=2
  10. SlurmctldPidFile=/var/run/slurmctld.pid
  11. SlurmctldPort=6817
  12. SlurmdPidFile=/var/run/slurmd.pid
  13. SlurmdPort=6818
  14. SlurmdSpoolDir=/var/lib/slurm-llnl/slurmd
  15. SlurmUser=slurm
  16. StateSaveLocation=/var/lib/slurm-llnl/slurmctld
  17. SwitchType=switch/none
  18. TaskPlugin=task/none
  19. #
  20. # TIMERS
  21. InactiveLimit=0
  22. KillWait=30
  23. MinJobAge=300
  24. SlurmctldTimeout=120
  25. SlurmdTimeout=300
  26. Waittime=0
  27. # SCHEDULING
  28. SchedulerType=sched/backfill
  29. SelectType=select/cons_tres
  30. SelectTypeParameters=CR_Core
  31. #
  32. #AccountingStoragePort=
  33. AccountingStorageType=accounting_storage/none
  34. JobCompType=jobcomp/none
  35. JobAcctGatherFrequency=30
  36. JobAcctGatherType=jobacct_gather/none
  37. SlurmctldDebug=info
  38. SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
  39. SlurmdDebug=info
  40. SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
  41. #
  42. # COMPUTE NODES
  43. NodeName=localhost CPUs=1 RealMemory=500 State=UNKNOWN
  44. PartitionName=LocalQ Nodes=ALL Default=YES MaxTime=INFINITE State=UP
  45. # chmod 755 /etc/slurm-llnl/
复制代码
现在让我们用 systemd 启动 slurm:
  1. $ sudo systemctl start slurmctld
  2. $ sudo systemctl start slurmd
复制代码
末了,将呆板设置为空闲状态,以便开始排队等待作业:
  1. $ sudo scontrol update nodename=localhost state=idle
  2. $ sinfo
  3. partition avail timelimit nodes state nodelist
  4. LocalQ* up infinite 1 idle localhost
复制代码
如果成功,您就看到了上面的内容,很好,您已经启动并运行了 slurm。您现在有了一个名为 LocalQ 的队列(或 slurm 行话中的 “分区”),可以向其提交工作。如果碰到任何题目,可以查看 /var/log/slurm-llnl/slurmd.log 和 /var/log/slurm-llnl/slurmctld.log 中的日志进行调试。
现在,您已经有了一个正常运行的 slurm 队列,如果需要更改配置,只需编辑 slurm.conf,然后通过 systemd 重启 slurmctld 和 slurmd 即可。关于如何使用 slurm 的更多信息,网上有很多文章。只需谷歌搜索 “如何向 slurm 提交作业”,或访问 slurm 网站。
参考资料

OpenPBS


OpenPBS 是高性能盘算集群的工作调度工具。此外,当你需要同时运行多个程序并将它们排成队列,同时确保盘算机或服务器不超载时,它也是本地桌面或单台服务器上的告急工具。此外,在与其他用户共享服务器或需要通宵或连续数周运行多个工作时,它也非常有效!在这里,我将向你展示如何在使用 ubuntu 20.04单台呆板上快速设置 OpenPBS 。你将不再需要为运行多个程序而编写复杂的脚本,以避免超出硬件限制或与同事争论谁的程序先运行。

  • 安装 postgresql
  1. $ sudo apt install gcc make libtool libhwloc-dev libx11-dev \
  2.       libxt-dev libedit-dev libical-dev ncurses-dev perl \
  3.       postgresql-server-dev-all postgresql-contrib python3-dev tcl-dev tk-dev swig \
  4.       libexpat-dev libssl-dev libxext-dev libxft-dev autoconf \
  5.       automake g++
  6. $ sudo apt install expat libedit2 postgresql python3 postgresql-contrib sendmail-bin \
  7.       sudo tcl tk libical3 postgresql-server-dev-all
复制代码

  • 下载 OpenPBS:
打开:https://www.openpbs.org/Download.aspx#download

点击:openpbs_23.06.06.ubuntu_20.04.zip

  • 安装OpenPBS
  1. $ unzip openpbs_23.06.06.ubuntu_20.04.zip
  2. $ cd openpbs_23.06.06.ubuntu_20.04
  3. $ sudo apt install ./openpbs-server_23.06.06-1_amd64.deb ./openpbs-devel_23.06.06-1_amd64.deb ./ openpbs-debuginfo_23.06.06-1_amd64.deb
  4. $ sudo /opt/pbs/libexec/pbs_postinstall
  5. # 现在应将 PBS_START_MOM 的值从 0 改为 1
  6. $ sudo vi /etc/pbs.conf
  7. PBS_EXEC=/opt/pbs
  8. PBS_SERVER=noteboo
  9. PBS_START_SERVER=1
  10. PBS_START_SCHED=1
  11. PBS_START_COMM=1
  12. PBS_START_MOM=1
  13. PBS_HOME=/var/spool/pbs
  14. PBS_CORE_LIMIT=unlimited
  15. PBS_SCP=/usr/bin/scp
  16. $ sudo vi /etc/hosts
  17. 172.16.36.204   noteboo localhost
  18. $ sudo chmod 4755 /opt/pbs/sbin/pbs_iff /opt/pbs/sbin/pbs_rcp
  19. $ sudo systemctl start pbs.service
复制代码

  • 验证
    现在,让我们使用 pbsnode -a 下令确认一切正常,本地盘算机已注册到 PBS:
  1. $ . /etc/profile.d/pbs.sh
  2. $ qstat -B
  3. Server             Max   Tot   Que   Run   Hld   Wat   Trn   Ext Status
  4. ---------------- ----- ----- ----- ----- ----- ----- ----- ----- -----------
  5. noteboo              0     0     0     0     0     0     0     0 Active
  6. $ pbsnodes -a
  7. noteboo
  8.      Mom = noteboo
  9.      ntype = PBS
  10.      state = free
  11.      pcpus = 16
  12.      resources_available.arch = linux
  13.      resources_available.host = noteboo
  14.      resources_available.mem = 16052476kb
  15.      resources_available.ncpus = 16
  16.      resources_available.vnode = noteboo
  17.      resources_assigned.accelerator_memory = 0kb
  18.      resources_assigned.hbmem = 0kb
  19.      resources_assigned.mem = 0kb
  20.      resources_assigned.naccelerators = 0
  21.      resources_assigned.ncpus = 0
  22.      resources_assigned.vmem = 0kb
  23.      resv_enable = True
  24.      sharing = default_shared
  25.      license = l
  26.      last_state_change_time = Sat Jan 18 14:16:17 2025
  27.      last_used_time = Sat Jan 18 14:21:57 2025
  28. $ echo "sleep 60" | qsub
  29. 2.noteboo
  30. $ qstat -a
  31. noteboo:
  32.                                                             Req'd  Req'd   Elap
  33. Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time  S Time
  34. --------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
  35. 2.noteboo       andrew   workq    STDIN      162200   1   1    --    --  R 00:00
复制代码
现在您的服务器上已经有了一个正常运行的 OpenPBS 队列系统。如果您想通过 PBS 脚本提交作业,只需在谷歌上搜索 PBS 提交脚本示例,就会出现大量指南/示例。可在OpenPBS主页,了解更多信息 https://www.openpbs.org

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

惊落一身雪

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表