Andrew Moa Blog Site

Ubuntu安装Slurm

Slurm,和PBS、LSF一样,超算上常用的任务管理系统。Slurm优点是开源免费、活跃度很高,近几年国内新兴的超算平台几乎都提供了Slurm作为主要的任务管理系统。PBS开源后活跃度低得可怜,更新到最新系统后安装一直出问题,提了issue也不见答复。LSF有版权风险,国内应用也不多,属于很少见的类型。至于命令和脚本,这三家都大差不差,学会了其中一家另外的也是手到擒来。

Ubuntu安装Slurm还是十分简单的,重要的工具基本都编译好了,直接apt安装即可,其他依赖项会自动安装:

sudo apt install slurmd	# 安装计算节点守护进程
sudo apt install slurmctld # 安装管理节点守护进程

Slurm需要有一个专门的用户用于通信等操作,这个用户的默认用户名是slurm,上面的命令其实已经自动在Ubuntu中生成了slurm用户,可以通过下面的命令验证:

lastlog | grep slurm

如果Ubuntu没有生成slurm用户,可以用以下命令生成:

sudo useradd slurm

Slurm配置文件主要在 /etc/slurm/ 目录下,主配置文件:/etc/slurm/slurm.conf,我们需要生成配置文件。官方提供了辅助生成配置文件的工具:Slurm Configuration Tool

根据网页内容提示,填写配置文件其中一些关键部分:

ClusterName=Cluster # 集群命名,任意英文和数字组合

SlurmctldHost=dell-vm # 管理节点,这里填本机名称

NodeName=dell-vm # 计算节点,同样填本机名称
PartitionName=debug # 计算节点所在分区,默认为debug
CPUs=32 # 计算节点CPU核心数,根据实际情况填写
Sockets=1 # CPU插槽数,根据实际情况填写
CoresPerSocket=32 # 每插槽核心数,根据实际情况填写
ThreadsPerCore=1 # 每核心线程数,建议为1,不建议打开超线程

SlurmUser=slurm # 默认为slurm用户,不建议改成root用户

StateSaveLocation=/var/spool/slurmctld # 管理节点守护进程的存储文件夹,默认即可
SlurmdSpoolDir=/var/spool/slurmd # 计算点守护进程的存储文件夹,默认即可

更多解释可以参考中科大网站上的信息。(1)

网页内容填写完成后点击最下面的Submit,把显示的配置文件模板拷贝下来,存到/etc/slurm/slurm.conf文件中:

sudo vim /etc/slurm/slurm.conf	# 复制粘贴到这个文件里

生成守护进程的读写文件夹:

sudo mkdir /var/spool/slurmd # Ubuntu下提示文件夹已存在,无视它
sudo mkdir /var/spool/slurmctld

启动Slurm的服务:

sudo systemctl enable slurmd
sudo systemctl enable slurmctld
sudo systemctl start slurmd
sudo systemctl start slurmctld

查看Slurm守护进程的启动状态:

阅读时长1分钟
Andrew Moa

Ubuntu挂载Windows共享文件夹(cifs+nfs)

在虚拟机中运行计算文件,会导致虚拟磁盘膨胀,占用太多磁盘空间。这个时候可以通过挂载宿主机文件夹的形式,把计算文件转移到宿主机磁盘上,避免了虚拟磁盘膨胀的问题。在Windows中建立共享文件夹,这里省略了,只需要确保虚拟机能通过IP地址访问宿主机即可。

1. 查看资源路径

以下命令查看服务器共享出来的资源路径,确认挂载点:

smbclient -L 172.25.64.1 -U ${username}

915cf6282a8325b667b52d37dea315f0.png

挂载点访问路径://172.25.64.1/Share

2. 挂载方法

想要在Ubuntu中访问Windows共享文件夹,首先得安装cifs工具:

sudo apt install cifs-utils

然后通过mount命令挂载共享文件夹:

sudo mount -t cifs //172.25.64.1/Share /mnt -o username=${username},password=${password}

这里的IP地址172.25.64.1是虚拟机中访问的宿主机的网关地址,Share是宿主机共享的文件夹,/mnt是要挂载到的虚拟机本地访问路径,把命令后面的${username}${password}替换成访问用户名和密码即可。需要注意的是,Windows本地用户的用户名需要写成${计算机名}\${用户名}的形式,用反斜杠连接,例如:xxx-desktop\administrator。如果是在线账户的话就需要填写完整的邮件账户名称。如果密码中包含逗号等特殊转义字符的话,命令行就不要包含,password=及后面的内容,后续根据提示输入密码登录。

如果出现无读写权限的问题,挂载命令中增加dir_mode=0777,file_mode=0777

sudo mount -t cifs //172.25.64.1/Share /mnt -o dir_mode=0777,file_mode=0777,username=${username},password=${password}

如果想只添加某些特定用户的读写权限,通过uidgid指定用户和组:

sudo mount -t cifs //172.25.64.1/Share /mnt -o uid=user,gid=group,username=${username},password=${password}

通过mount命令可以查看挂载情况:

mount | grep cifs

b9e4cda2700bd92ba7d89159f79cc007.png

阅读时长1分钟
Andrew Moa

Hyper-V安装Ubuntu24.04

1. 需求

考虑在新电脑上安装Linux,不是双系统,因为还要满足日常办公。不喜欢折腾的可以用WSL,这里用Hyper-V实现,同时通过端口映射实现外网访问虚拟机。

2. 准备工作

2.1 下载Ubuntu

笔者是做CFD的,自然离不开Fluent,这玩意儿挑发行版的。从官网资料确认支持哪个发行版,支持哪个就装哪个,免得后面倒腾回来重装系统。

Ansys Computing Platform Support 2024R1

这里选择Ubuntu,前往官网下载最新的发行版。

2fd636d62e1453b3b54ad4074cde6c48.png

2.2 开启Hyper-V支持

在开始菜单搜索“启用或关闭Windows功能”,开启虚拟化支持。

973c3b93cf91c5138b89bbeaeb2bf103.png

把Hyper-V勾上,安装并重启就行了。

4e7e7f54c61f0f16af1595cb8c0b220e.png

阅读时长2分钟
Andrew Moa