北京超算资源简明使用指南
关于北京超算的GPU和CPU服务器的简明使用,用于提交相关计算任务
Xi’an, China: ☀️ 🌡️+6°C 🌬️↑4km/h
写在前面
要完成计算相关的任务,免不了需要云计算服务,有阿里云、腾讯云等,这里我们主要以北京超算提供的CPU和GPU资源为例,快速上手计算任务提交。特别建议:建立test
文件夹,用于本地和云服务器上的测试,尽管北京超算提供了相关测试方法,但仍有不便。
module工具基本命令
北京超算主要以module
模块对相关软件进行管理,如果存在任何疑问或相关软件需要安装,可直接联系客服7X24h在线。
命令 | 功能 | 示例 |
---|---|---|
module avail | 查看可用软件列表 | |
module load [modulesfile] | 加载需要使用的软件 | module load cuda/10.0 |
module show [modulesfile] | 查看对应软件的路径等 | module show cuda/10.0 |
module list | 查看当前已加载软件 | |
module unload [modulesfile] | 移除已加载软件 | module unload cuda/10.0 |
module purge | 移除所有已加载软件 | |
module –help | 查看module更多命名 |
注:可以将load常用软件的命令放在~/.bashrc或者写成简单的shell脚本,如下:
- CPU分区启用常用软件脚本示例
#!/bin/bash
source /public1/soft/modules/module.sh
module purge
module load anaconda/3-Python3.7.3-wjl tree/1.8.0
source activate automl
conda info --envs
- GPU分区启用常用软件脚本示例
#!/bin/bash
module purge
module load anaconda/2020.11 tensorboard/2.3.0
source activate base
conda info --envs
conda基本命令
# 加载anaconda环境
module load anaconda/2020.11
# 创建环境
conda create -n py37 python=3.7
# 已安装环境
conda env list
# conda --info envs
# 激活环境
source activate py37
# 取消激活当前环境
source deactivate py37
# 安装所需软件
conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia
# 查看已安装库
conda list
# 删除Python环境
conda remove --name myenv --all
conda env remove --name myenv
CPU 账户A5分区
系统资源简介
超算是独占节点,计费方式是以节点为基本单位。即:如果提交核数不足节点上的核数,也是按满核计费。比如:超算上每个节点有64核资源,提交12核作业,也是按照64核计费。所以建议满核提交,使用的核数要用一个节点核数的整数倍。 以一个节点是 64核的超算为例,脚本里面#SBATCH -n后面的数字要是节点数乘以每个节点的核数,才是充分利用资源。比如用2个节点,采用下面写法: # SBATCH -N 2 # SBATCH -n 128
作业提交脚本示例1
```shell
#!/bin/bash
# 设置节点数
SBATCH -N 1
# 设置节点的核数
SBATCH -n 1
# 设置分区
SBATCH -p amd_256
# 设置每个任务需要的CPU数量
SBATCH -c 64
source /public1/soft/modules/module.sh
module purge
module load ananconda/3-Python3.7.3-wjl
source activate automl
# 确保可以实时看到程序输出而不影响程序运行
export PYTHONUNBUFFERED=1
python test.py
GPU 账户N22分区
系统资源简介
- 计算资源:每台机器配备8块V100-SXM2 32GBGPU,GPU:CPU:内存比为1GPU卡:8CPU核:36GB内存。
- 存储资源:
home
目录用于存放用户环境设置等文件,~/run
目录读写性能较好,archive
存放访问频率低的数据。
作业提交脚本示例
- 命令说明:sbatch –gpus=GPU卡数 程序运行脚本
- 命令示例:
sbatch --gpus=1 ./run.sh
,其中run.sh脚本示例如下:
#!/bin/bash
module purge
module load anaconda/2020.11 tensorboard/2.3.0 tree/1.8.0 cudnn/8.1.1.33_CUDA11.2 cuda/11.2
source activate py39
export PYTHONUNBUFFERED=1
python test.py
高级功能:数据集存储至内存文件系统计算
- 目的:减少数据读取时间,最多程序降低IO瓶颈,发挥GPU最大性能
- 限制:1卡最多用36GB,8卡最多158GB
- 操作步骤:
- 打包数据集:
tar -cf datasets.tar datasets
- 提交脚本中添加:
tar -xf datasets.tar -C /dev/shm
,解压后的路径路径为/dev/shm/datasets
- Python代码的数据集路径改为
/dev/shm/datasets
- sbatch提交作业
- 打包数据集:
已提交作业管理
- 查看作业执行状态:
squeue
或者parajobs
,详细命令参考squeue --help
作业状态参数 | 表示含义 |
---|---|
JOBID | 作业唯一标识号 |
PARTITION | 作业运行使用的队列名 |
NAME | 作业名 |
USER | 超算账号名 |
ST | R(Running) PD(Pending) CG(Completing) S(管理员暂时挂起) CD(Completed) F(Failed) 只有R状态计费 |
TIME | 运行时间 |
NODES | 作业使用节点数目 |
NODELIST(REASON) | 对于R作业显示使用的节点列表,PD作业显原因 |
- 结束作业:
scancel 作业号(JOBID)
- 查看输出:程序开始运行后,会生成
.out
文件,使用tail -f file.out
实时查看输出
参考文献:
💬 评论