计算化学公社

 找回密码 Forget password
 注册 Register
Views: 1987|回复 Reply: 39

[集群维护] Ubuntu20.04 安装单机slurm教程

[复制链接 Copy URL]

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

发表于 Post on 2022-10-13 17:14:12 | 显示全部楼层 Show all |阅读模式 Reading model
本帖最后由 wxyhgk 于 2022-11-20 23:18 编辑

=========== 视频教程 ==========
http://b23.tv/mSXWBjI

=========== 文字稿 ===========
配置 slurm 的主要目的是为了用他的这个作业的邮件通知,我平时使用 Gaussian 09 软件,运行的时候不知道啥时候运行完成了,每次都需要自己去看,就很烦,所以我的需求是当我的作业完成的时候可以邮件提醒我啥时候完成了,效率就会提高很多。



最终效果:


Snipaste_2022-10-13_17-01-44.png


1.准备工作

本教程不需要任何linux基础

  • 确认你是Ubuntu20.04系统
    和后面的邮件配置有关,ubuntu 18.04 以后都用 s-nail 而不是 mailx 或 mailutils
  • 安装MobaXterm(点我下载
    此软件 ssh 和 sftp 在同一页面,所以操作起来非常简单
  • 使用 root 账户登录(建议的非必须)
    只是为了方便编辑,不然用 vim 很多人不会
2.安装和配置Slurm
2.1 安装 slurm
首先使用 MobaXterm 软件,用 root 用户登录 ssh 。
  1. sudo apt install slurm-wlm slurm-wlm-doc -y
复制代码

检查是否安装成功
  1. slurmd --version
复制代码
会得到:slurm-wlm 19.05.5

2.2 配置 slurm
配置文件是放在/etc/slurm-llnl/ 下面的,MobaXterm 左边是sftp ,进入后,新建一个 slurm.conf 文件即可


202210131908215152..png

如果你会使用 vi ,也可以使用命令
  1. sudo vi /etc/slurm-llnl/slurm.conf
复制代码


接下来就是编辑 slurm.conf 文件了,像我下面一样(有点长别害怕)
  1. ClusterName=cool
  2. ControlMachine=master
  3. #ControlAddr=
  4. #BackupController=
  5. #BackupAddr=
  6. #
  7. MailProg=/usr/bin/s-nail
  8. SlurmUser=root
  9. #SlurmdUser=root
  10. SlurmctldPort=6817

  11. SlurmdPort=6818
  12. AuthType=auth/munge
  13. #JobCredentialPrivateKey=
  14. #JobCredentialPublicCertificate=
  15. StateSaveLocation=/var/spool/slurmctld
  16. SlurmdSpoolDir=/var/spool/slurmd
  17. SwitchType=switch/none
  18. MpiDefault=none
  19. SlurmctldPidFile=/var/run/slurmctld.pid
  20. SlurmdPidFile=/var/run/slurmd.pid
  21. ProctrackType=proctrack/pgid
  22. #PluginDir=
  23. #FirstJobId=
  24. ReturnToService=0
  25. #MaxJobCount=
  26. #PlugStackConfig=
  27. #PropagatePrioProcess=
  28. #PropagateResourceLimits=
  29. #PropagateResourceLimitsExcept=
  30. #Prolog=
  31. #Epilog=
  32. #SrunProlog=
  33. #SrunEpilog=
  34. #TaskProlog=
  35. #TaskEpilog=
  36. #TaskPlugin=
  37. #TrackWCKey=no
  38. #TreeWidth=50
  39. #TmpFS=
  40. #UsePAM=
  41. #
  42. # TIMERS
  43. SlurmctldTimeout=300
  44. SlurmdTimeout=300
  45. InactiveLimit=0
  46. MinJobAge=300
  47. KillWait=30
  48. Waittime=0
  49. #
  50. # SCHEDULING
  51. SchedulerType=sched/backfill
  52. #SchedulerAuth=
  53. #SelectType=select/linear
  54. #PriorityType=priority/multifactor
  55. #PriorityDecayHalfLife=14-0
  56. #PriorityUsageResetPeriod=14-0
  57. #PriorityWeightFairshare=100000
  58. #PriorityWeightAge=1000
  59. #PriorityWeightPartition=10000
  60. #PriorityWeightJobSize=1000
  61. #PriorityMaxAge=1-0
  62. #
  63. # LOGGING

  64. SlurmctldDebug=info
  65. SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
  66. SlurmdDebug=info
  67. SlurmdLogFile=/var/log/slurm-llnl/slurmd.log
  68. JobCompType=jobcomp/none
  69. #JobCompLoc=
  70. #
  71. # ACCOUNTING
  72. #JobAcctGatherType=jobacct_gather/linux
  73. #JobAcctGatherFrequency=30
  74. #
  75. #AccountingStorageType=accounting_storage/slurmdbd
  76. #AccountingStorageHost=
  77. #AccountingStorageLoc=
  78. #AccountingStoragePass=
  79. #AccountingStorageUser=
  80. #
  81. # COMPUTE NODES

  82. PartitionName=master Nodes=master Default=NO MaxTime=INFINITE State=UP
  83. #NodeName=master State=UNKNOWN
  84. NodeName=master Sockets=2 CoresPerSocket=16 ThreadsPerCore=1 State=UNKNOWN
复制代码
上面代码中,

ControlMachine=master
PartitionName=master Nodes=master Default=NO MaxTime=INFINITE State=UP
#NodeName=master State=UNKNOWN
NodeName=master Sockets=2 CoresPerSocket=16 ThreadsPerCore=1 State=UNKNOWN

我标记的 红色部分 绿色部分 是需要修改的。

红色部分的修改 :
使用 hostname 命令查看你的名字,然后把得到的名字替换上面的 master


绿色部分修改:
这部分稍微有点复杂,首先来解释各个名字的意思


  • Sockets 代表你服务器cpu的个数
    查看 cpu 个数的命令:cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
  • CoresPerSocket 代表每个cpu的核数
    查看每个 cpu 核数的命令:cat /proc/cpuinfo| grep "cpu cores"| uniq
  • ThreadsPerCore 代表是否开启超线程,如果开启了超线程就是2,没有开启就是1
    使用命令
    1. vi cxc.sh
    复制代码
    编写以下脚本:
    1. #!/bin/bash
    2. cpuhx=`cat /proc/cpuinfo | grep "cores" | uniq | awk -F":" '{print $2}'`
    3. echo "CPU 核心数:$cpuhx" ;
    4. cpuxc=`cat /proc/cpuinfo | grep "processor" | wc -l`
    5. echo "CPU 线程数:$cpuxc" ;
    6. echo "如果线程数是核心数的两倍,为开启了超线程"
    复制代码
    然后使用命令 bash cxc.sh 运行脚本,看看线程数是不是核心数的两倍,如果是就开启了,没有就没开启。


2.3 启动 slurm
完成上述所有步骤后,就能启动了
  1. sudo systemctl enable slurmctld --now
  2. sudo systemctl enable slurmd --now
复制代码


查看队列 slurm 队列信息:

  1. sinfo
复制代码

202210131909388754..png

如果这部分是 idle 就说明是可以的,至此就已经安装完成了,如果不是idle请看这个


3.配置邮件提醒
3.1 安装 s-nail


使用命令
  1. sudo apt install s-nail
复制代码


3.2 配置 s-nail
  1. vi /etc/s-nail.rc
复制代码
在末尾添加
  1. set from="你的qq邮箱"
  2. set smtp="smtps://smtp.qq.com:465"
  3. set smtp-auth-user="你的qq邮箱"
  4. set smtp-auth-password="qq邮箱授权码"
  5. set smtp-auth=login
复制代码
qq邮箱授权码如何得到?点我查看

配置好之后,使用测试命令:echo "邮件内容" | s-nail -s "邮件主题" 你的qq邮箱地址 看看qq邮箱是否得到消息

3.3 测试 sbatch 服务
在你 linux 含有Gaussian计算文件夹下面,使用
  1. vi g09.slurm
复制代码
填写如下内容
  1. #!/bin/bash
  2. #SBATCH -J GaussianJob
  3. #SBATCH -p master
  4. #SBATCH -N 1
  5. #SBATCH -n 1
  6. #SBATCH --mail-user=你的qq邮箱
  7. #SBATCH --mail-type=ALL

  8. g09 $1
复制代码
上面的 master 是你的机器名字,每个人都不一样,需要你自己修改,上面已经说了是运行 hostname 得到的名字,替换 master

配置好上面所有之后,使用命令
  1. sbatch g09.slurm 你的gjf文件名字
复制代码


愉快地看看你 QQ 邮箱是否受到邮件了。

更多的 slurm 教程可以看这个:

中科大超级计算机用户文档
自己编写的超简单运行文档

原文章地址 https://wxyhgk.com/article/ubuntu-slurm

评分 Rate

参与人数
Participants 13
eV +59 收起 理由
Reason
xaver2010 + 4 好物!
Picardo + 5 谢谢
Zhangzhihe + 5 谢谢分享
nxtjdc + 1 好物!
Sekai + 5 谢谢分享
乐平 + 5 好物!
mxh + 5 好物!
djjj148 + 5 好物!
shenzekai + 3 谢谢
阿司匹林泡腾片 + 5
gog + 5 谢谢分享
想不想该不该 + 3 赞!
sobereva + 8

查看全部评分 View all ratings

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

 楼主 Author| 发表于 Post on 2022-10-13 17:17:53 | 显示全部楼层 Show all
编辑器很不方便,后面再修改吧

1852

帖子

1

威望

4098

eV
积分
5970

Level 6 (一方通行)

发表于 Post on 2022-10-13 18:10:30 | 显示全部楼层 Show all
本帖最后由 abin 于 2022-10-13 19:06 编辑

这个教程应该可以操作成功.
只要有耐心即可.

hpc4you toolkit solo

适用于不想自己动手的朋友.

单机工作站快速自动部署slurm调度器.

如何使用?
上传工具包,
输入
  1. unzip -qo hpc4you*zip ; source code
复制代码

即可自动完成安装.

操作演示, BV1Gg411R7tt.
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
App,  https://gitee.com/hpc4you/linux
hpc4you toolkit,  https://gitee.com/hpc4you/hpc
电邮hpc4you@163.com VX: hpc4you

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

 楼主 Author| 发表于 Post on 2022-10-13 18:58:26 | 显示全部楼层 Show all
abin 发表于 2022-10-13 18:10
hpc4you toolkit solo

适用于不想自己动手的朋友.

看了下你这个后续的要钱

1852

帖子

1

威望

4098

eV
积分
5970

Level 6 (一方通行)

发表于 Post on 2022-10-13 19:07:52 | 显示全部楼层 Show all
wxyhgk 发表于 2022-10-13 18:58
看了下你这个后续的要钱

要么自己花时间,

要么花钱, 就这么简单.

有闲功夫, 又有兴趣的, 建议自己动手.
整个配置过程也很有意思的.
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
App,  https://gitee.com/hpc4you/linux
hpc4you toolkit,  https://gitee.com/hpc4you/hpc
电邮hpc4you@163.com VX: hpc4you

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

 楼主 Author| 发表于 Post on 2022-10-13 19:12:25 | 显示全部楼层 Show all
abin 发表于 2022-10-13 19:07
要么自己花时间,

要么花钱, 就这么简单.

半个小时可以搞定的事情得花几百,个人感觉你这个比较坑了

1852

帖子

1

威望

4098

eV
积分
5970

Level 6 (一方通行)

发表于 Post on 2022-10-13 19:54:27 | 显示全部楼层 Show all
wxyhgk 发表于 2022-10-13 19:12
半个小时可以搞定的事情得花几百,个人感觉你这个比较坑了

坑不坑的,我不评价。

来找我要工具的,
我都是建议自己动手。

实在不想自己动手,
那就付钱。

觉得价格有问题,那就找别人。
一切皆自愿。

High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
App,  https://gitee.com/hpc4you/linux
hpc4you toolkit,  https://gitee.com/hpc4you/hpc
电邮hpc4you@163.com VX: hpc4you

27

帖子

0

威望

149

eV
积分
176

Level 3 能力者

发表于 Post on 2022-10-31 17:09:01 | 显示全部楼层 Show all
实测可以~~~多谢楼主

48

帖子

0

威望

166

eV
积分
214

Level 3 能力者

发表于 Post on 2022-11-8 00:34:12 | 显示全部楼层 Show all
想请教一下楼主,关于 SchedulerType=sched/backfill,这里用 backfill 好还是 buildin 好呢?

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

 楼主 Author| 发表于 Post on 2022-11-8 09:57:23 | 显示全部楼层 Show all
sun35mr 发表于 2022-11-8 00:34
想请教一下楼主,关于 SchedulerType=sched/backfill,这里用 backfill 好还是 buildin 好呢?

自己不懂就不用管这些,不修改,如果你想改到这里看:https://slurm.schedmd.com/sched_config.html

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

 楼主 Author| 发表于 Post on 2022-11-8 10:01:48 | 显示全部楼层 Show all
sun35mr 发表于 2022-11-8 00:34
想请教一下楼主,关于 SchedulerType=sched/backfill,这里用 backfill 好还是 buildin 好呢?
  1. SchedulerType=sched/backfill # 要使用的调度程序的类型。注意,slurmctld守护程序必须重新启动才能使调度程序类型的更改生效(重新配置正在运行的守护程序对此参数无效)。如果需要,可以使用scontrol命令手动更改作业优先级。可接受的类型为:
  2.      # sched/backfill # 用于回填调度模块以增加默认FIFO调度。如这样做不会延迟任何较高优先级作业的预期启动时间,则回填调度将启动较低优先级作业。回填调度的有效性取决于用户指定的作业时间限制,否则所有作业将具有相同的时间限制,并且回填是不可能的。注意上面SchedulerParameters选项的文档。这是默认配置
  3.      # sched/builtin # 按优先级顺序启动作业的FIFO调度程序。如队列中的任何作业无法调度,则不会调度该队列中优先级较低的作业。对于作业的一个例外是由于队列限制(如时间限制)或关闭/耗尽节点而无法运行。在这种情况下,可以启动较低优先级的作业,而不会影响较高优先级的作业。
  4.      # sched/hold # 如果 /etc/slurm.hold 文件存在,则暂停所有新提交的作业,否则使用内置的FIFO调度程序。
复制代码


来源: http://hmli.ustc.edu.cn/doc/linu ... /slurm-install.html

58

帖子

0

威望

720

eV
积分
778

Level 4 (黑子)

碳基生物,地表动物

发表于 Post on 2022-11-8 15:16:22 | 显示全部楼层 Show all
这个邮件提醒很nice,感谢楼主

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

 楼主 Author| 发表于 Post on 2022-11-8 17:28:49 | 显示全部楼层 Show all
阿司匹林泡腾片 发表于 2022-11-8 15:16
这个邮件提醒很nice,感谢楼主

觉得不错就给我点个赞,增加点积分,不然以后没动力写教程了

227

帖子

1

威望

3981

eV
积分
4228

Level 6 (一方通行)

发表于 Post on 2022-11-9 17:11:38 | 显示全部楼层 Show all
感谢楼主教程。您好请问这种设置下如果想要slurm同时跑几个任务该怎么设置。我看了下现在这样一次运行一个任务其它在排队。

36

帖子

2

威望

369

eV
积分
445

Level 3 能力者

 楼主 Author| 发表于 Post on 2022-11-9 18:39:53 | 显示全部楼层 Show all
paramecium86 发表于 2022-11-9 17:11
感谢楼主教程。您好请问这种设置下如果想要slurm同时跑几个任务该怎么设置。我看了下现在这样一次运行一个 ...

到这里自己配置 https://docs.hpc.sjtu.edu.cn/job/slurm.html

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2023-2-2 21:56 , Processed in 0.648248 second(s), 26 queries .

快速回复 返回顶部 返回列表 Return to list