admin 管理员组

文章数量: 1087709

公共集群申请GPU

文章目录

  • 一、脚本文件模板
  • 二、节点的参数
  • 三、申请步骤
    • 1、创建.sh脚本文件
    • 2、提交作业
    • 3、查看作业结果

本文以自己学院的新集群申请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 torchprint("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]$ squeueJOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)491       cpu     bash  y202663  R 2-18:46:16      1 cpu1567       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

本文标签: 公共集群申请GPU