分布式计算课程补充笔记 part 1.5

▶ 编写 SLURM 脚本

 1 #!/bin/bash
 2 #SBATCH -J name                 # 任务名
 3 #SBATCH -p gpu                  # 分区名,可为 cpu 或 gpu
 4 #SBATCH -N 1                    # 节点数
 5 #SBATCH --ntasks-per-node=1     # 单节点进程数
 6 #SBATCH --cpus-per-task=1       # 单进程 CPU 核心数
 7 #SBATCH -o output.log           # 标准输出文件
 8 #SBATCH -t 1-00:00:00           # 运行最长时间
 9 #SBATCH --gres=gpu:1            # 申请的 GPU 卡数,只能在 -p 为 gpu 时填写
10 
11 # 要运行的命令

▶ 检查任务状态

sinfo                               # 查看各个分区状态  
sinfo -lN                           # 查看节点状态
squeue                              # 查看任务状态
scancel JOBID / scancel -u username # 取消任务

▶ 交互式任务提交

● 申请交互式资源:① ssh 直连节点(如 ssh cu01),获取新 bash;② 完成交互式计算任务;③ exit 退出到登录节点,再次 exit 命令退出 bash,并释放资源

● salloc 用法(参数名与脚本式提交相同)

salloc -N 1 -p cpu -c 8 -t 1:00:00  # 申请 1 台 cpu 分区的节点,每个线程 8 核心,占用时间 1 小时

▶ module 相关

module avail                # 查看所有软件模块
module list                 # 查看当前已经加载的模块
module add m1 m2 m3 ...     # 添加模块
module remove m1 m2 m3 ...  # 删除模块
module purge                # 删除所有
module swap m1 m2           # 交换模块(m1 → m2)

▶ conda 是 anaconda 软件的包管理器和环境管理器

conda create -n ENVNAME                     # 创建 conda 环境
source activate ENVNAME                     # 激活环境
(ENVNAME) conda install package1 = x.y.z    # 在已经激活的环境里安装包
(ENVNAME) pip install package1 == x.y.z     # 安装了 python 后可用 pip
(ENVNAME) source deactivate                 # 退出环境
conda env remove -n ENVNAME                 # 删除环境(当前环境不能处于激活状态)

猜你喜欢

转载自www.cnblogs.com/cuancuancuanhao/p/10220161.html
1.5