Slurm超算集群跑深度学习代码教程

12 篇文章 1 订阅
12 篇文章 2 订阅

参考教程
http://docs.hpc.whu.edu.cn/

  1. 登录武汉大学信息门户,在办事大厅的搜索栏进行搜索,然后按照指示进行VPN和超算中心的账号申请。超算中心的用户名和密码在武汉大学超算中心申请成功后,会发到指定邮箱。
    在这里插入图片描述
  2. 超算学生账户关联主账户申请
    在这里插入图片描述

如果是校外操作,则需要通过easyconnect登陆集群专属VPN
https://vpn.whu.edu.cn/

1.连接超算

使用支持 SSH 协议的客户端软件MobaXterm来登录超算
https://mobaxterm.mobatek.net/

方法一. 密码登录:使用 SSH 客户端连接超算的登录节点 swarm.whu.edu.cn202.114.96.180
在这里插入图片描述
方法二. 秘钥id_rsa文件登录
在这里插入图片描述

用户存储与数据传输

在这里插入图片描述

/bin/myDiskQuota

在这里插入图片描述

文件传输(SFTP 协议)

服务器IP地址: 202.114.96.180 or 202.114.96.177
在这里插入图片描述
方法二. 秘钥id_rsa文件登录
在这里插入图片描述

anaconda安装

https://repo.anaconda.com/archive/

  1. 通过wget从官网下载相关版本到根目录下
    wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
    在这里插入图片描述
  2. 执行命令:bash Anaconda3-2020.07-Linux-x86_64.sh安装
    在这里插入图片描述

注意:这里指定新的路劲,是由于默认的路径存储空间不够导致安装失败

  1. 选择yes添加环境变量
    在这里插入图片描述

  2. 修改 ~/.bashrc文件

  • 打开bashrc文件:vim ~/.bashrc
  • 输入 i 进入插入状态,可在最后加入:export PATH='anaconda的安装目录/bin:$PATH'
  • ESC”退出编辑模式, 输入:wq保存退出;
  • 执行命令:source ~/.bashrc 让修改生效

输入命令行source /home/xxx/.bashrc,xxx为用户账号名称。这样就完成了anaconda3的配置。

  1. 输入conda -V验证是否安装成功
    在这里插入图片描述

创建虚拟环境

通过conda create -n 环境名字 python=3.7创建一个虚拟环境

conda activate 环境名字
conda deactivate 环境名字

pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

Slurm系统下的作业调度管理

https://blog.csdn.net/lovebaby1689/article/details/123208698

作业脚本基本结构
在这里插入图片描述
作业脚本
在这里插入图片描述

–account
付费账号关联,用户使用收费分区时,需要关联付费账号,在作业脚本里加入

#SBATCH --account=supervisor

请将 supervisor 替换为导师的账号名

–partition
超算上不同类型的计算资源,以分区的形式组织

  • 免费用户使用的 CPU 集群,分区命名 hpxg
  • 付费用户使用的 CPU 集群,分区命名 hpib
  • Intel Knight Landing 7250 集群,分区命名 knl
  • Nvidia Tesla V100 集群,分区命名 gpu

指定使用哪个分区,在作业脚本里加入

#SBATCH --partition=gpu

–nodes
申请计算节点的数量,在作业脚本里加入

#SBATCH --nodes=X

其中 X 是数量,需要的计算节点的个数

–ntasks-per-node
控制每个计算节点上运行 task 的数量,一般与 --nodes 配合使用,例如

MPI 程序需要 3 个计算节点,每节点 4 个进程,一共 12 个 task,对应 12 个 cpu 核

#SBATCH --nodes=3
#SBATCH --ntasks-per-node=4

还可以与 --cpus-per-task 选项配合使用,例如

MPI 程序需要 1个计算节点,每节点 2 个进程,每个进程使用 OpenMP 运行 8 个线程,一共16 个 cpu 核

#SBATCH --nodes=1
#SBATCH --ntasks-per-node=2
#SBATCH --cpus-per-task=8

–cpus-per-task
单个 task 需要的 cpu 核数。一个 task 进程可以多线程,需要使用多个 cpu 核。此选项 Slurm 系统会保证一个 task 进程所在的计算节点上有指定数量的 cpu 核可用。

例如,每个计算节点有 4 个 cpu 核,一个计算作业需要 24 个 cpu 核

  • 直接声明 24 个 task,Slurm 系统将分配 6 个计算节点
  • 指定 --cpus-per-task=3,Slurm 系统将分配 8个计算节点,确保一个 task 需要的 3 个 cpu 核是在同一个节点上

如果不设置此选项,Slurm 系统默认值是 1,即默认一个 task 分配一个 cpu 核

–gres
申请每计算节点上 GPU 资源的数量,在作业脚本里加入

#SBATCH --gres=gpu:X

其中 X 是数量,目前 gpu 分区每计算节点有 4 张 Nvidia Tesla V100,因此 X 不超过 4

提交作业
将脚本跟 mycode.py 放在同一个目录下,然后运行以下命令提交作业

sbatch myjob.sh
在这里插入图片描述

sbatch 命令把作业脚本提交给 Slurm 系统,获得一个 JobID 作业编号,并显示给用户

作业编号 JobID 是一个正整数数字。

Slurm 系统将根据作业脚本选项所列出的计算资源申请需求,结合当前可用的资源现状,给计算任务排队、分配资源、启动计算程序、输出各种中间过程信息、计算结束后回收计算资源。

作业管理

squeue命令查看作业状态信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何查看导师(付费)账号下资源及使用情况`
在登录节点执行命令 accountInfos + 导师(付费)账号

分配资源后查看显卡运行状况

ssh g0109
在这里插入图片描述

退出SSH,通过命令

logout

导师(付费)账号为xinming的查询方法

accountInfos xinming

作业脚本选项

日志 log 输出控制
作业脚本的标准输出和标准错误默认保存到同一个日志文件,名为

slurm-%j.out # %j 是作业编号
在这里插入图片描述

要改变标准输出,在作业脚本里加入

#SBATCH --output=filename.out

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Slurm 是一个开源的高性能计算集群管理系统,用于在大规模计算环境中调度、管理和监控作业。下面是一些关于如何部署 Slurm 集群的基本教程: ## 1. 安装 Slurm 首先,需要在所有计算节点和管理节点上安装 Slurm。可以通过源代码或二进制软件包进行安装。 ### 安装依赖 在安装 Slurm 之前,需要安装一些依赖,包括 Munge、OpenSSL、PAM、Numactl、MySQL 或 MariaDB、Python 等。可以通过以下命令安装这些依赖: ``` sudo apt-get update sudo apt-get install munge libmunge-dev openssl libssl-dev libpam0g-dev numactl \ mariadb-server libmysqlclient-dev python3-dev python3-pip ``` ### 安装 Slurm 可以从官方网站下载最新版本的 Slurm代码:https://www.schedmd.com/downloads.php。然后将源代码解压缩并进行编译和安装。 ``` tar xzf slurm-20.11.7.tar.gz cd slurm-20.11.7 ./configure --prefix=/usr/local make sudo make install ``` ## 2. 配置 Slurm 在安装完 Slurm 后,需要配置集群。主要包括以下步骤: ### 配置 Munge Slurm 需要 Munge 来进行身份验证和加密。需要在所有节点上安装 Munge,并生成一个共享密钥。 ``` sudo apt-get install munge sudo systemctl enable munge sudo systemctl start munge sudo /usr/sbin/munged --force sudo dd if=/dev/random bs=1 count=1024 >/etc/munge/munge.key sudo chmod 400 /etc/munge/munge.key sudo chown munge:munge /etc/munge/munge.key ``` 将生成的密钥复制到所有节点上。 ### 配置 Slurm 配置文件 Slurm 的配置文件为 `/usr/local/etc/slurm.conf`。可以使用以下命令创建一个基本的配置文件: ``` sudo mkdir -p /etc/slurm-llnl sudo cp /usr/local/etc/slurm.conf.example /etc/slurm-llnl/slurm.conf ``` 然后,编辑配置文件并根据需要进行更改。以下是一些常用的配置项: ``` ControlMachine=<管理节点IP地址> MpiDefault=none SlurmUser=<Slurm用户> SlurmdUser=<slurmd用户> AuthType=auth/munge CryptoType=crypto/munge ``` ### 配置 slurmdbd slurmdbd 是一个用于将作业信息和节点状态存储在数据库中的守护进程。需要在管理节点上安装 MySQL 或 MariaDB,并创建一个数据库和一个用户。 ``` sudo apt-get install mariadb-server libmysqlclient-dev sudo systemctl enable mariadb sudo systemctl start mariadb sudo mysql_secure_installation sudo mysql -u root -p ``` 在 MySQL 命令行界面上,输入以下命令来创建数据库和用户: ``` CREATE DATABASE slurm_acct_db; GRANT ALL ON slurm_acct_db.* TO 'slurm'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 然后,编辑 `/etc/slurm-llnl/slurmdbd.conf` 文件,并根据需要进行更改。以下是一些常用的配置项: ``` DbdAddr=<管理节点IP地址> DbdHost=<管理节点主机名> StorageType=accounting_storage/mysql DbdUser=<MySQL用户名> DbdPass=<MySQL用户密码> DbName=slurm_acct_db ``` ### 配置节点 在每个计算节点上,需要编辑 `/etc/slurm-llnl/slurmd.conf` 文件,并根据需要进行更改。以下是一些常用的配置项: ``` ControlMachine=<管理节点IP地址> AuthType=auth/munge CryptoType=crypto/munge ``` 然后,启动 `slurmd` 守护进程: ``` sudo systemctl enable slurmd sudo systemctl start slurmd ``` ## 3. 启动 Slurm 在完成所有配置后,可以启动 Slurm。首先,需要启动 `slurmdbd` 守护进程: ``` sudo systemctl enable slurmdbd sudo systemctl start slurmdbd ``` 然后,在管理节点上启动 `slurmctld` 守护进程: ``` sudo systemctl enable slurmctld sudo systemctl start slurmctld ``` ## 4. 测试 Slurm 可以使用以下命令测试 Slurm 是否正常工作: ``` srun -N <节点数> -n <任务数> hostname ``` 例如: ``` srun -N 2 -n 4 hostname ``` 运行此命令后,应该会在终端上看到所有节点的主机名。如果一切正常,则表示 Slurm 已经正确安装和配置。 以上是一个基本的 Slurm 集群部署教程,如果需要更高级的配置和管理,请参考 Slurm 官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小白的成长

计算机网络PPT下载

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值