计算化学公社

 找回密码 Forget password
 注册 Register
Views: 13790|回复 Reply: 68
打印 Print 上一主题 Last thread 下一主题 Next thread

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

  [复制链接 Copy URL]

196

帖子

5

威望

1213

eV
积分
1509

Level 5 (御坂)

本帖最后由 wxyhgk 于 2022-11-20 23:18 编辑

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

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



最终效果:





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 文件即可




如果你会使用 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
复制代码



如果这部分是 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 24
eV +102 收起 理由
Reason
CSyy + 3 谢谢分享
pikachuupup + 2 赞!
xpcqy537 + 4 谢谢分享
adong + 5 赞!
lurensan + 5 牛!
Guantsian + 5 谢谢
hong1kun + 5 正解,终于有个好用的教程了
star2128 + 2 确实好用!
cccc7777 + 2 赞!
丁越 + 5 赞!
12342234 + 5 赞!
xaver2010 + 4 好物!
Picardo + 5 谢谢
Zhangzhihe + 5 谢谢分享
nxtjdc + 1 好物!
Sekai + 5 谢谢分享
乐平 + 5 好物!
mxh + 5 好物!
djjj148 + 5 好物!
shenzekai + 3 谢谢

查看全部评分 View all ratings

196

帖子

5

威望

1213

eV
积分
1509

Level 5 (御坂)

69#
 楼主 Author| 发表于 Post on 2024-7-11 13:43:59 | 只看该作者 Only view this author
lurensan 发表于 2024-7-11 09:08
好的,期待大佬的操作

你按照我这个配置文件来修改:

  1. # Slurm.conf file generated by configurator easy.html.
  2. # Put this file on all nodes of your cluster.
  3. # See the slurm.conf man page for more information.
  4. #
  5. SlurmctldHost=master
  6. #
  7. #MailProg=/bin/mail
  8. MpiDefault=none
  9. MailProg=/usr/bin/s-nail
  10. #MpiParams=ports=#-#
  11. ProctrackType=proctrack/cgroup
  12. ReturnToService=1
  13. SlurmctldPidFile=/var/run/slurmctld.pid
  14. #SlurmctldPort=6817
  15. SlurmdPidFile=/var/run/slurmd.pid
  16. #SlurmdPort=6818
  17. SlurmdSpoolDir=/var/spool/slurmd
  18. SlurmUser=slurm
  19. #SlurmdUser=root
  20. StateSaveLocation=/var/spool/slurmctld
  21. SwitchType=switch/none
  22. TaskPlugin=task/affinity
  23. #
  24. #
  25. # TIMERS
  26. #KillWait=30
  27. #MinJobAge=300
  28. #SlurmctldTimeout=120
  29. #SlurmdTimeout=300
  30. #
  31. #
  32. # SCHEDULING
  33. SchedulerType=sched/backfill
  34. SelectType=select/cons_tres
  35. SelectTypeParameters=CR_Core
  36. #
  37. #
  38. # LOGGING AND ACCOUNTING
  39. AccountingStorageType=accounting_storage/none
  40. ClusterName=cluster
  41. #JobAcctGatherFrequency=30
  42. JobAcctGatherType=jobacct_gather/none
  43. #SlurmctldDebug=info
  44. SlurmctldLogFile= /var/log/slurmctld.log
  45. #SlurmdDebug=info
  46. SlurmdLogFile=/var/log/slurmd.log
  47. #
  48. #
  49. # COMPUTE NODES
  50. PartitionName=batch Nodes=master Default=YES MaxTime=INFINITE State=UP
  51. NodeName=master CPUs=192 Boards=1 SocketsPerBoard=2 CoresPerSocket=48 ThreadsPerCore=2 RealMemory=257722
复制代码
其中里面的 master 改成你自己的主机的 hostname,然后就是最后一行中的
  1. NodeName=master CPUs=192 Boards=1 SocketsPerBoard=2 CoresPerSocket=48 ThreadsPerCore=2 RealMemory=257722
复制代码
改成你自己的

125

帖子

0

威望

1198

eV
积分
1323

Level 4 (黑子)

68#
发表于 Post on 2024-7-11 09:08:26 | 只看该作者 Only view this author
wxyhgk 发表于 2024-7-11 08:34
这个需要改成 mix 模式才会比较好,晚点我更新下

好的,期待大佬的操作

196

帖子

5

威望

1213

eV
积分
1509

Level 5 (御坂)

67#
 楼主 Author| 发表于 Post on 2024-7-11 08:34:55 | 只看该作者 Only view this author
本帖最后由 wxyhgk 于 2024-7-11 08:36 编辑
lurensan 发表于 2024-7-11 01:22
感谢大佬的教程,请问关于一次只能跑一个任务的问题怎样解决呢?上面的网址看过了,仍然没有头绪

这个需要改成 mix 模式才会比较好,晚点我更新下

125

帖子

0

威望

1198

eV
积分
1323

Level 4 (黑子)

66#
发表于 Post on 2024-7-11 01:22:41 | 只看该作者 Only view this author
wxyhgk 发表于 2022-11-9 18:39
到这里自己配置 https://docs.hpc.sjtu.edu.cn/job/slurm.html

感谢大佬的教程,请问关于一次只能跑一个任务的问题怎样解决呢?上面的网址看过了,仍然没有头绪

196

帖子

5

威望

1213

eV
积分
1509

Level 5 (御坂)

65#
 楼主 Author| 发表于 Post on 2024-6-3 09:07:53 | 只看该作者 Only view this author

和软件无关,本质上,就是个把本地软件,通过网络分发到各个机器上用

2

帖子

0

威望

15

eV
积分
17

Level 1 能力者

64#
发表于 Post on 2024-6-1 01:11:04 | 只看该作者 Only view this author
vasp 能用吗

125

帖子

0

威望

1198

eV
积分
1323

Level 4 (黑子)

63#
发表于 Post on 2023-10-22 04:31:16 | 只看该作者 Only view this author
老师好,一个节点请问只能一次运行一个job吗

5

帖子

0

威望

666

eV
积分
671

Level 4 (黑子)

62#
发表于 Post on 2023-9-7 14:05:51 | 只看该作者 Only view this author
paramecium86 发表于 2022-11-11 09:46
谢谢您的回复。我用了这种写法,不过是我没形容好问题。这样写脚本,这样两个任务还是排在同一个slurm的j ...

请问一下您最后解决这个问题了吗

197

帖子

1

威望

1104

eV
积分
1321

Level 4 (黑子)

61#
发表于 Post on 2023-8-18 17:34:56 | 只看该作者 Only view this author
请问这个方法在Rocky linux9可以用吗

18

帖子

0

威望

182

eV
积分
200

Level 3 能力者

60#
发表于 Post on 2023-6-16 15:52:42 | 只看该作者 Only view this author
wxyhgk 发表于 2022-10-13 19:12
半个小时可以搞定的事情得花几百,个人感觉你这个比较坑了

强烈赞同。试了版主的方法,已经成功安装,邮件也可以收到了。

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

59#
发表于 Post on 2023-5-23 10:38:41 | 只看该作者 Only view this author
本帖最后由 乐平 于 2023-5-23 10:40 编辑
llity 发表于 2023-5-22 23:27
这个是的,还有一个slurm安装包,没有wlm后缀

如果你自己动手查一下官网,就知道了。

https://slurm.schedmd.com/download.html


Download Slurm
Slurm source can be downloaded from https://www.schedmd.com/downloads.php.
Slurm has also been packaged for Debian and Ubuntu (named slurm-wlm), Fedora, and NetBSD (in pkgsrc) and FreeBSD.
slurm-wlm 是给 Debian 和 Ubuntu 定制的包。

27

帖子

0

威望

141

eV
积分
168

Level 3 能力者

58#
发表于 Post on 2023-5-22 23:27:25 | 只看该作者 Only view this author
乐平 发表于 2023-5-22 21:33
顾名思义,doc 应该是文档

这个是的,还有一个slurm安装包,没有wlm后缀

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

57#
发表于 Post on 2023-5-22 21:33:06 | 只看该作者 Only view this author
llity 发表于 2023-5-22 14:13
重新安装一遍可以了,谢谢。一个疑问:
安装slurm和slurm-wlm slurm-wlm-doc有什么区别,谢谢

顾名思义,doc 应该是文档

27

帖子

0

威望

141

eV
积分
168

Level 3 能力者

56#
发表于 Post on 2023-5-22 14:13:01 | 只看该作者 Only view this author
wxyhgk 发表于 2023-5-15 20:03
你前面做了测试了吗,给出你的 g09.slurm 代码

重新安装一遍可以了,谢谢。一个疑问:
安装slurm和slurm-wlm slurm-wlm-doc有什么区别,谢谢

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

GMT+8, 2024-11-23 15:28 , Processed in 0.583059 second(s), 32 queries , Gzip On.

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