|
确实,Ubuntu 22.04 路径改变了,可以使用下面两种方法
1.方法1使用我的 CDN 远程脚本
下面的脚本会替换你 slurm.conf 文件里面的内容,然后正确配置
(确保你安装了 curl 命令,如果没有就是用 sudo apt install curl-y )
- cd /etc/slurm && curl -s http://pic.wxyh.top/ubuntu-slurm-replace.sh | bash
复制代码
2. 方法2.自己写脚本
这里给出我的 CDN 远程脚本,
使用
- cd /etc/slurm && sudo vi ubuntu-slurm-repalce.sh
复制代码
建立一个脚本,内容填写下面的
- #!/bin/bash
- # 输入文件名
- input_file="slurm.conf"
- # 备份文件名
- backup_file="slurm-beifen.conf"
- # 备份原始文件
- cp "$input_file" "$backup_file"
- # 获取主机名
- hostname=$(hostname)
- # 获取 CPU 个数
- cpu_count=$(cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l)
- # 获取每个 CPU 的核数
- cores_per_socket=$(cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F ":" '{print $2}' | xargs)
- # 检查是否开启超线程
- thread_count=$(cat /proc/cpuinfo | grep "processor" | wc -l)
- threads_per_core=1
- if [[ $((cpu_count * cores_per_socket * 2)) -eq $thread_count ]]; then
- threads_per_core=2
- fi
- # 使用 sed 命令替换主机名、CPU 个数、每个 CPU 的核数和是否开启超线程
- sed -i -e "s/ControlMachine=master/ControlMachine=$hostname/g" \
- -e "s/NodeName=master/NodeName=$hostname/g" \
- -e "s/PartitionName=master Nodes=master/PartitionName=$hostname Nodes=$hostname/g" \
- -e "s/Sockets=2/Sockets=$cpu_count/g" \
- -e "s/CoresPerSocket=16/CoresPerSocket=$cores_per_socket/g" \
- -e "s/ThreadsPerCore=1/ThreadsPerCore=$threads_per_core/g" \
- "$input_file"
- # 将 slurm-llnl 全部替换成 slurm
- sed -i 's/slurm-llnl/slurm/g' slurm.conf
- # 输出成功信息
- echo "文件 $input_file 已经更新.原文件备份为 $backup_file"
复制代码
建立好了之后,使用
- sudo bash ubuntu-slurm-repalce.sh
复制代码
|
|