计算化学公社

 找回密码 Forget password
 注册 Register
楼主 Author: wxyhgk
打印 Print 上一主题 Last thread 下一主题 Next thread

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

  [复制链接 Copy URL]

196

帖子

5

威望

1211

eV
积分
1507

Level 5 (御坂)

31#
 楼主 Author| 发表于 Post on 2022-11-17 10:21:29 | 只看该作者 Only view this author
mxh 发表于 2022-11-17 09:37
老师,运行成功了,我之前一直用slurm,看到您的配置邮件的帖子,觉得非常有用进行了尝试,但没有收到邮 ...

是忘记重启 slurm 服务了吗

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

32#
发表于 Post on 2022-11-20 17:13:14 | 只看该作者 Only view this author
编写以下脚本:
#!/bin/bash
cpuhx=`cat /proc/cpuinfo | grep "cores" | uniq | awk -F":" '{print $2}'`
echo "CPU 核心数:$cpuhx" ;
cpuxc=`cat /proc/cpuinfo | grep "processor" | wc -l`
echo "CPU 线程数:$cpuxc" ;
echo "如果线程数是核心数的两倍,为开启了超线程"
复制代码
然后使用命令 bash cxc.sh 运行脚本,看看线程数是不是核心数的两倍,如果是就开启了,没有就没开启。


楼主您好!

关于脚本里的线程数与 CPU 核心数有个疑问。由于是双路 CPU(我的塔式服务器有两个 CPU),脚本给出的核心数只是单个 CPU 的核心数,所有,还需要考虑 CPU 的个数 * CPU 核心数。

也许可以加上您前面提到的
  1. cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
复制代码

196

帖子

5

威望

1211

eV
积分
1507

Level 5 (御坂)

33#
 楼主 Author| 发表于 Post on 2022-11-20 20:20:34 | 只看该作者 Only view this author
本帖最后由 wxyhgk 于 2022-11-20 20:31 编辑
乐平 发表于 2022-11-20 17:13
楼主您好!

关于脚本里的线程数与 CPU 核心数有个疑问。由于是双路 CPU(我的塔式服务器有两个 CPU ...

这个脚本我博客里面更新了,之前的 bash 水平不高,写了个临时的,可以使用新脚本
  1. #!/bin/bash
  2. cpunum=`cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l`
  3. echo "CPU 个数: $cpunum";
  4. cpuhx=`cat /proc/cpuinfo | grep "cores" | uniq | awk -F":" '{print $2}'`
  5. echo "CPU 核心数:$cpuhx" ;
  6. cpuxc=`cat /proc/cpuinfo | grep "processor" | wc -l`
  7. echo "CPU 线程数:$cpuxc" ;

  8. if [[ `expr $cpunum\*$[cpuhx*2] ` -eq $cpuxc ]];
  9. then
  10.     echo "开启了超线程"
  11. else
  12.     echo "未开启超线程"
  13. fi
复制代码


13

帖子

0

威望

2133

eV
积分
2146

Level 5 (御坂)

34#
发表于 Post on 2022-11-20 23:21:08 | 只看该作者 Only view this author
楼主您好,请问输入sinfo后出现如下报错应如何解决?

202211202320557863..png (177.21 KB, 下载次数 Times of downloads: 79)

202211202320557863..png

196

帖子

5

威望

1211

eV
积分
1507

Level 5 (御坂)

35#
 楼主 Author| 发表于 Post on 2022-11-20 23:27:45 | 只看该作者 Only view this author
Reminder 发表于 2022-11-20 23:21
楼主您好,请问输入sinfo后出现如下报错应如何解决?

看看自己是不是替换错了,把所有 master 替换成你的 hostname,本人已经发了视频教程, http://b23.tv/mSXWBjI,可以看看

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

36#
发表于 Post on 2022-11-21 10:50:12 | 只看该作者 Only view this author
wxyhgk 发表于 2022-11-20 20:20
这个脚本我博客里面更新了,之前的 bash 水平不高,写了个临时的,可以使用新脚本

谢谢更新的脚本!

50

帖子

0

威望

2542

eV
积分
2592

Level 5 (御坂)

37#
发表于 Post on 2022-11-21 17:08:05 | 只看该作者 Only view this author
wxyhgk 发表于 2022-11-20 20:20
这个脚本我博客里面更新了,之前的 bash 水平不高,写了个临时的,可以使用新脚本

请问楼主:当如图中线程数是CPU核数4倍时ThreadsPerCore还是写2么?

196

帖子

5

威望

1211

eV
积分
1507

Level 5 (御坂)

38#
 楼主 Author| 发表于 Post on 2022-11-21 18:41:05 | 只看该作者 Only view this author
myzpku 发表于 2022-11-21 17:08
请问楼主:当如图中线程数是CPU核数4倍时ThreadsPerCore还是写2么?

1 代表没开启超线程
2 代表开启了超线程

所以填 2

2

帖子

0

威望

185

eV
积分
187

Level 3 能力者

39#
发表于 Post on 2022-12-3 11:22:51 | 只看该作者 Only view this author

2

帖子

0

威望

185

eV
积分
187

Level 3 能力者

40#
发表于 Post on 2022-12-3 11:24:05 | 只看该作者 Only view this author
wxyhgk 发表于 2022-11-9 18:39
到这里自己配置 https://docs.hpc.sjtu.edu.cn/job/slurm.html

请问解决了吗,不太会啊

14

帖子

0

威望

345

eV
积分
359

Level 3 能力者

41#
发表于 Post on 2023-3-30 09:08:14 | 只看该作者 Only view this author
请问各位老师,我们用的超算squeue可以显示所用的CPUs,我照这个教程在组内服务器安装slurm,可以运行,如果想要和超算一样的效果,可以显示CPUs,请问各位老师如何设置。

202303300905084594..png (9.98 KB, 下载次数 Times of downloads: 70)

202303300905084594..png

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

42#
发表于 Post on 2023-4-24 14:36:08 | 只看该作者 Only view this author
本帖最后由 乐平 于 2023-4-24 14:37 编辑

Ubuntu 22.04 系统按照您的方法用
  1. sudo apt install slurm-wlm slurm-wlm-doc -y
复制代码

安装后可以显示 slurmd 的版本号
  1. (base) huan@grape:~/scitools$ slurmd --version
  2. slurm-wlm 21.08.5
复制代码


但是配置好 slurm.conf 并且启动
  1. (base) huan@grape:/etc/slurm$ sudo systemctl enable slurmctld --now
  2. Synchronizing state of slurmctld.service with SysV service script with /lib/systemd/systemd-sysv-install.
  3. Executing: /lib/systemd/systemd-sysv-install enable slurmctld
  4. (base) huan@grape:/etc/slurm$ sudo systemctl enable slurmd --now
  5. Synchronizing state of slurmd.service with SysV service script with /lib/systemd/systemd-sysv-install.
  6. Executing: /lib/systemd/systemd-sysv-install enable slurmd
复制代码



查看队列信息时候,出现通讯失败
  1. (base) huan@grape:/etc/slurm$ sinfo
  2. slurm_load_partitions: Unable to contact slurm controller (connect failure)
复制代码



不知道是不是系统的原因……

196

帖子

5

威望

1211

eV
积分
1507

Level 5 (御坂)

43#
 楼主 Author| 发表于 Post on 2023-4-24 15:00:01 | 只看该作者 Only view this author
乐平 发表于 2023-4-24 14:36
Ubuntu 22.04 系统按照您的方法用

安装后可以显示 slurmd 的版本号

仔细检查配置文件是否有问题,Ubuntu 22.04 我也测试过,应该没问题才对

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

44#
发表于 Post on 2023-4-24 17:28:08 | 只看该作者 Only view this author
wxyhgk 发表于 2023-4-24 15:00
仔细检查配置文件是否有问题,Ubuntu 22.04 我也测试过,应该没问题才对

谢谢回复。

Ubuntu 22.04 系统里 slurm 配置文件的路径和您的帖子不一样,没有 /etc/slurm-llnl 这个路径,我只能找到 /etc/slurm,于是把 slurm.conf 放在了 /etc/slurm 路径下。

不知道是不是这个原因?

196

帖子

5

威望

1211

eV
积分
1507

Level 5 (御坂)

45#
 楼主 Author| 发表于 Post on 2023-4-24 19:06:01 | 只看该作者 Only view this author
乐平 发表于 2023-4-24 17:28
谢谢回复。

Ubuntu 22.04 系统里 slurm 配置文件的路径和您的帖子不一样,没有 /etc/slurm-llnl 这个 ...

确实,Ubuntu 22.04 路径改变了,可以使用下面两种方法
1.方法1使用我的 CDN 远程脚本
下面的脚本会替换你 slurm.conf 文件里面的内容,然后正确配置
(确保你安装了 curl 命令,如果没有就是用 sudo apt install
curl-y
  1. cd /etc/slurm && curl -s http://pic.wxyh.top/ubuntu-slurm-replace.sh | bash
复制代码


2. 方法2.自己写脚本
这里给出我的 CDN 远程脚本,
使用
  1. cd /etc/slurm && sudo vi ubuntu-slurm-repalce.sh
复制代码

建立一个脚本,内容填写下面的


  1. #!/bin/bash

  2. # 输入文件名
  3. input_file="slurm.conf"
  4. # 备份文件名
  5. backup_file="slurm-beifen.conf"

  6. # 备份原始文件
  7. cp "$input_file" "$backup_file"

  8. # 获取主机名
  9. hostname=$(hostname)

  10. # 获取 CPU 个数
  11. cpu_count=$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)

  12. # 获取每个 CPU 的核数
  13. cores_per_socket=$(cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F ":" '{print $2}' | xargs)

  14. # 检查是否开启超线程
  15. thread_count=$(cat /proc/cpuinfo | grep "processor" | wc -l)
  16. threads_per_core=1
  17. if [[ $((cpu_count * cores_per_socket * 2)) -eq $thread_count ]]; then
  18.     threads_per_core=2
  19. fi

  20. # 使用 sed 命令替换主机名、CPU 个数、每个 CPU 的核数和是否开启超线程
  21. sed -i -e "s/ControlMachine=master/ControlMachine=$hostname/g" \
  22.     -e "s/NodeName=master/NodeName=$hostname/g" \
  23.     -e "s/PartitionName=master Nodes=master/PartitionName=$hostname Nodes=$hostname/g" \
  24.     -e "s/Sockets=2/Sockets=$cpu_count/g" \
  25.     -e "s/CoresPerSocket=16/CoresPerSocket=$cores_per_socket/g" \
  26.     -e "s/ThreadsPerCore=1/ThreadsPerCore=$threads_per_core/g" \
  27.     "$input_file"

  28. # 将 slurm-llnl 全部替换成 slurm
  29. sed -i 's/slurm-llnl/slurm/g' slurm.conf


  30. # 输出成功信息
  31. echo "文件 $input_file 已经更新.原文件备份为 $backup_file"

复制代码


建立好了之后,使用
  1. sudo bash ubuntu-slurm-repalce.sh
复制代码




本版积分规则 Credits rule

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

GMT+8, 2024-11-23 08:30 , Processed in 0.210479 second(s), 29 queries , Gzip On.

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