北京云服务使用指南

在超算(HPC)环境中,登录节点(Login Node) 只能用来修改代码或简单编译,绝对不能直接运行深度学习训练。一旦你开始 import torch 并进行计算,就必须申请计算节点(Compute Node)

结合你之前的报错和环境,这里是加入“申请节点”后的完整操作手册:


1. 交互式申请:边调边练 (srun)

如果你想在终端里像在自己电脑上一样运行代码,使用 srun 命令。这会直接把你带到一台带 GPU 的机器上。

执行命令:

1
2
# 申请 1 张 GPU,使用某个分区(请根据你集群的 partition 名修改,如 'gpu')
srun -p <分区名> --gres=gpu:1 --cpus-per-task=4 --mem=16G --pty bash
  • 参数说明-p 指定分区,--gres=gpu:1 申请一张卡,--pty bash 表示进入该节点的交互式终端。
  • 注意:进入节点后,必须重新执行 module loadconda activate(除非你已写进 .bashrc)。

2. 离线提交:正式跑实验 (sbatch)

这是最推荐的方式。写一个脚本交给系统排队,跑完后结果会自动存入 .out 文件,你不用盯着屏幕。

创建一个文件,比如 run_job.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash
#SBATCH -job-name=pytorch_test       # 任务名
#SBATCH -p <分区名>                   # 提交到哪个分区
#SBATCH -N 1                         # 申请 1 个节点
#SBATCH --gres=gpu:1                 # 申请 1 张 GPU
#SBATCH --cpus-per-task=4            # 申请 4 核 CPU
#SBATCH -t 24:00:00                  # 运行时间限制 (24小时)
#SBATCH -o %j.out                    # 标准输出文件 (%j 为任务号)
#SBATCH -e %j.err                    # 报错输出文件

# --- 以下是你的环境配置 (关键) ---
module load compilers/cuda/11.8
module load cudnn/8.8.1.3_cuda11.x
source activate my_gpu_env

# --- 运行你的 Python 脚本 ---
python train.py

提交任务:

1
sbatch run_job.sh

3. 全流程避坑总结(终极版)

步骤 操作内容 关键点
1. 登录 ssh user@cluster 此时在 Login Node,别跑大程序!
2. 申请 srun (交互) 或 sbatch (离线) 此时系统分配 Compute Node
3. 环境 module load cudnn/... 解决你之前的 libcudnn.so.8 报错。
4. 激活 conda activate my_gpu_env 进入你的 Python 环境。
5. 运行 python main.py 此时程序在 GPU 上起飞。

4. 几个常用的“救命”命令

  • 查看排队情况squeuesqueue -u <你的用户名>
  • 查看节点显卡状态sinfo(看看哪些节点是空的)
  • 取消错误的任务scancel <任务号>
  • 查看报错详情cat <任务号>.err(如果 import torch 还是报错,看这个文件)

最后更新于 2026-03-15 00:11
使用 Hugo 构建
主题 StackJimmy 设计