本文以自己学院的新集群申请GPU为例
不同的集群申请方式可能不同
学院有2个集群,旧集群与这个新集群略有区别
一、脚本文件模板
以下是自己总结的脚本文件模板,关键代码已经给出了注释,可以直接使用。
后续的内容是一个例子,可以不看。
#! /bin/bash
### 表 示 这 是 一 个bash脚 本
#SBATCH --job-name="define_name"
### 设置该作业的作业名
#SBATCH --output=tGpu02_out.%j.out
#SBATCH --error=tGpu02_err.%j.err
#SBATCH --nodes=1
### 指 定 该 作 业 需 要1个节点 数,目前学院集群gpu只有1个节点,设置过多节点会报错
#SBATCH --ntasks-per-node=32
### 每个节点所运行的进程数为32,经过测试,大于32个进程数会报错
#SBATCH --partition=gpu
#SBATCH --gres=gpu:1
###SBATCH --gpus=1
###2、3含义相同,都是指定gpu数量,选其中1个即可
###1、2这两条必须全部都有,先指定分区,再指定gpu数量,如果缺少一个会报错,单节点最大申请1个GPU
#SBATCH --nodelist=gpu1
###指定用哪个nodelist,即GPU,但由于目前集群只有1个GPU,所以不指定也可以
###时间、扣费 可省
###SBATCH --time=2:00:00
### 作 业 最 大 的 运 行 时 间 , 超 过 时 间 后 作 业 资 源 会 被SLURM回 收
###SBATCH --comment project_name
### 指 定 从 哪 个 项 目 扣 费 。 如 果 没 有 这 条 参 数 , 则 从 个 人 账 户 扣 费
source ~/.bashrc
###这句话不能省,用来申请GPU,否则申请不到
###该命令非常非常的重要
###该命令非常非常的重要
nvidia-smi
which nvidia-smi
nvidia-smi
### 程 序 的 执 行 命 令
###source activate pytorch01
###python python.py
二、节点的参数
输入sinfo,查看学院公共集群可用节点
[jessy@workstation testpy]$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
cpu* up infinite 1 mix cpu1
gpu up infinite 1 idle gpu1
三、申请步骤
1、创建.sh脚本文件
[jessy@workstation ~]$ mkdir gpu_use
[jessy@workstation ~]$ cd gpu_use/
[jessy@workstation gpu_use]$ vi gpu.sh
在 gpu.sh文件中,将刚刚模板中的文件粘贴到sh中,
略作修改:修改了名字,以及把最下方的命令注释去掉,即改为:
#! /bin/bash
### 表 示 这 是 一 个bash脚 本
#SBATCH --job-name="gpu"
### 设置该作业的作业名
#SBATCH --output=gpu_out.%j.out
#SBATCH --error=gpu_err.%j.err
#SBATCH --nodes=1
### 指 定 该 作 业 需 要1个节点 数,目前学院集群gpu只有1个节点,设置过多节点会报错
#SBATCH --ntasks-per-node=32
### 每个节点所运行的进程数为32,经过测试,大于32个进程数会报错
#SBATCH --partition=gpu
#SBATCH --gres=gpu:1
###SBATCH --gpus=1
###2、3含义相同,都是指定gpu数量,选其中1个即可
###1、2这两条必须全部都有,先指定分区,再指定gpu数量,如果缺少一个会报错,单节点最大申请1个GPU
#SBATCH --nodelist=gpu1
###指定用哪个nodelist,即GPU,但由于目前集群只有1个GPU,所以不指定也可以
###时间、扣费 可省
###SBATCH --time=2:00:00
### 作 业 最 大 的 运 行 时 间 , 超 过 时 间 后 作 业 资 源 会 被SLURM回 收
###SBATCH --comment project_name
### 指 定 从 哪 个 项 目 扣 费 。 如 果 没 有 这 条 参 数 , 则 从 个 人 账 户 扣 费
source ~/.bashrc
###这句话不能省,用来申请GPU,否则申请不到
###该命令非常非常的重要
###该命令非常非常的重要
nvidia-smi
which nvidia-smi
nvidia-smi
### 程 序 的 执 行 命 令
source activate pytorch01
python python.py
因为即要激活环境,并且运行python文件
我们创建并编辑这个python文件
[jessy@workstation gpu_use]$ vi python.py
import torch
print("hello world!")
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))
2、提交作业
看一下文件夹下面的文件,并且提交
[jessy@workstation gpu_use]$ ls
gpu.sh python.py
[jessy@workstation gpu_use]$ sbatch gpu.sh
Submitted batch job 567
[jessy@workstation gpu_use]$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
491 cpu bash y202663 R 2-18:46:16 1 cpu1
567 gpu gpu jessy R 0:02 1 gpu1
[jessy@workstation gpu_use]$
3、查看作业结果
[jessy@workstation gpu_use]$ ls
gpu_err.567.err gpu_out.567.out gpu.sh python.py
[jessy@workstation gpu_use]$ cat gpu_out.567.out
Thu Dec 1 12:16:32 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 308... Off | 00000000:1A:00.0 Off | N/A |
| 30% 32C P8 20W / 350W | 0MiB / 12053MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
/usr/local/nvidia/bin/nvidia-smi
Thu Dec 1 12:16:32 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03 Driver Version: 460.91.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce RTX 308... Off | 00000000:1A:00.0 Off | N/A |
| 30% 32C P8 20W / 350W | 0MiB / 12053MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
hello world!
True
GeForce RTX 3080 Ti
[jessy@workstation gpu_use]$ cat gpu_err.567.err
[jessy@workstation gpu_use]$
可以看到,GPU申请成功,并且激活了pytorch环境,测试了gpu
7865

被折叠的 条评论
为什么被折叠?



