集群服务器GPU深度模型训练笔记(PBS作用调度系统)

相关手册与软件准备

官方使用手册

用户手册:https://hpc.sustech.edu.cn/ref/cluster_User_Manual.pdf
培训视频:https://hpc.sustech.edu.cn/ref/meeting_20230810.mp4
启明2.0使用手册:https://hpc.sustech.edu.cn/ref/qiming_User_Manual_v3.0.pdf
Anaconda官方教程:https://hpc.sustech.edu.cn/ref/anaconda-install-by-user.html

在这里插入图片描述

安装前置软件

  1. FileZilla传输数据
    filezilla是一款用于与远程服务器传输数据的软件。
    下载FileZilla,下载教程参考https://blog.csdn.net/SoloVersion/article/details/124579221
    FileZilla官方使用说明:https://welcome.filezilla-project.org/welcome?type=client&category=documentation_network&version=3.66.1
    FileZilla官方网络设置手册:https://wiki.filezilla-project.org/Network_Configuration

按照步骤登录节点,注意:在站点管理器中,传输协议要选择SFTP!!!不然会连接失败。

  1. xshell登录节点
    xshell用于远程登陆服务器以及进行命令行操作。
    xshell安装官网:https://www.xshell.com/zh/free-for-home-school/
    在这里插入图片描述

深度学习模型单节点训练

以yolov5最基本模型训练为例

1. 配置Anaconda

Anaconda官方教程:https://hpc.sustech.edu.cn/ref/anaconda-install-by-user.html

因为anaconda相关文件会存储在自己的工作文件夹里,所以和环境相关的步骤可以直接在登录节点执行。

下载Anaconda(只需完成一次)

test -d ~/softwares/python/anaconda3 || mkdir -p ~/softwares/python/anaconda3 #创建安装目录
wget https://mirrors.sustech.edu.cn/anaconda/archive/Anaconda3-2020.07-Linux-x86_64.sh #下载安装包
sh Anaconda3-2020.07-Linux-x86_64.sh -b -p ~/softwares/python/anaconda3/2020.07 #自动安装到目录

在安装目录写入环境变量文件anaconda.2020.07.source,此文件也可以放在任意计算时可以调用的目录,在命令行输入:

cat>~/softwares/python/anaconda3/2020.07/anaconda.2020.07.source<<EOF
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/work/ccse-tangh/softwares/python/anaconda3/2020.07/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "~/softwares/python/anaconda3/2020.07/etc/profile.d/conda.sh" ]; then
        . "~/softwares/python/anaconda3/2020.07/etc/profile.d/conda.sh"
    else
        export PATH="~/softwares/python/anaconda3/2020.07/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<
EOF

在用户目录写入.condarc文件,配置国内更新源,以便于加快更新和安装环境或者软件包的速度,在命令行输入:

cat>~/.condarc<<EOF
channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.sustech.edu.cn/anaconda
default_channels:
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/main
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/free
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/r
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/pro
custom_channels:
  conda-forge: https://mirrors.sustech.edu.cn/anaconda/cloud
  msys2: https://mirrors.sustech.edu.cn/anaconda/cloud
  bioconda: https://mirrors.sustech.edu.cn/anaconda/cloud
  menpo: https://mirrors.sustech.edu.cn/anaconda/cloud
  pytorch: https://mirrors.sustech.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.sustech.edu.cn/anaconda/cloud
EOF

加载环境变量,清理索引缓存,更新:

source ~/softwares/python/anaconda3/2020.07/anaconda.2020.07.source
conda clean -i 
conda update --prefix ~/softwares/python/anaconda3/2020.07 anaconda -y

为每一个任务创建一个conda环境

直接在登陆节点创建并配置好requirement,在pbs文件里activate就可以了。在训练节点无法联网,不能下载相关包或者创建环境!!!

先激活bash使用conda:

conda init bash
source ~/.bashrc

然后就是标准conda操作了:

conda create -n yolov5 python=3.8 -y -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda activate yolov5

cd yolov5
pip install -r requirements.txt

再正常使用,比如创建,激活等

配置cuda+torch

这里不知道卡了多久,配置cuda和torch主要有几个要点,分别是:

  1. 显卡与驱动(NIVIADA driver)是否适配。
  2. cuda版本与显卡是否适配。
  3. torch是否为gpu版本
  4. torch版本与cuda,与python是否适配
  5. touchvision版本与torch是否适配。

详细内容见http://t.csdnimg.cn/KnLK9
注意没conda create一个环境都要手动装一下torch和torchvision

pip install torch-2.0.0+cu118-cp311-cp311-linux_x86_64.whl
pip install torchvision-0.15.1+cu118-cp311-cp311-linux_x86_64.whl

2. pbs文件编写

成功完成训练pbs文件示例:

!/bin/bash
#PBS -N yolov5_train
#PBS -l nodes=1:ppn=1,gpus=1
#PBS -l walltime=1:00:00
#PBS -o yolov5_train.out
#PBS -e yolov5_train.err
#PBS -A your_account
#PBS -V
#PBS -q gpu

export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

# 查看gpu版本
#nvcc --version
# Display GPU information
# nvidia-smi

conda init bash
source ~/.bashrc
conda activate checkcuda5

export GIT_PYTHON_REFRESH=quiet

# 载入cuda
module load cuda/11.8

cd yolov5

python -c "import torch; print(torch.cuda.is_available())"

python train.py --img 640 --epochs 2 --data data/coco128.yaml --weights yolov5s.pt

# 退出 conda 环境
conda deactivate

3.作业提交与监控

因为我们的pbs文件是在win上编辑好后再传过去的,在提交之前需要转化为unix格式:

dos2unix train_job14.pbs
qsub -q 2a100-80 train_job14.pbs
队列选择

启明所有队列:
在这里插入图片描述
查看当前队列使用情况

qstat

查看自己的作业

bjobs

Multi-GPU Training

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/324609.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于vue+Spring Boot家政服务人员预约系统iph9d

通过对家政服务管理内容的学习研究&#xff0c;进而设计并实现一个家政服务系统。系统能实现的主要功能应包括即时通讯、通讯回复、预约订单、接单信息、服务费用管、服务评价的一些操作。还有可以正确的为用户服务&#xff0c;准确显示当前信息[5]。 开发软件有很多种可以用&…

【JVM】性能调优

一、前言 性能调优&#xff0c;顾名思义&#xff0c;就是对系统或软件的性能进行优化&#xff0c;以提高其运行效率和响应速度。在计算机科学中&#xff0c;性能调优通常涉及到硬件、操作系统、数据库、网络等多个方面。对于Java开发者来说&#xff0c;JVM&#xff08;Java虚拟…

Docker 容器之间的互相通信

Docker容器之间的互相通信 步骤一&#xff1a;创建自定义网络 首先&#xff0c;我们需要创建一个自定义网络&#xff0c;以便容器可以连接到这个网络上&#xff0c;从而实现互相通信。在命令行中执行以下命令&#xff1a; # 创建 docker network create ddz # 查看 docker n…

O2066PM无线WIFI6E网卡Windows环境吞吐测试

从2023年开始&#xff0c;除手机外的无线终端设备也逐步向WIFI6/6E进行升级更新&#xff0c;基于802.11ax技术的设备能够进一步满足用户体验新一代Wi-Fi标准时获得优质的性能和覆盖范围。 用户对于WIFI模块&#xff0c;通常会关注WIFI模块的吞吐量&#xff0c;拿到样品之后&am…

如何在iPhone或iPad中截取长页面,这里有详细步骤

iOS有太多隐藏的功能&#xff0c;记住它们可能是一个挑战&#xff0c;但知道如何在iPhone或iPad上截屏整个页面是我从未忘记的。 你若是一名作家&#xff0c;你经常会发现自己需要截屏网站和文章中的大块文本&#xff0c;以便发送给某人或稍后阅读。虽然现在的手机有着令人羡慕…

python统计分析——生成正态分布随机数

参考资料&#xff1a;用python动手学统计学&#xff0c;帮助文档 方法1&#xff1a;scipy.stats.norm.rvs() from scipy import stats stats.norm.rvs(loc4,scale0.8,size10) 参数介绍如下&#xff1a; loc&#xff1a;表示正态分布的均值&#xff0c;默认为0 scale&#…

Visual Studio Code常用设置

此处用于记录下本人所使用 VScode 的使用习惯。其中主要包括&#xff1a;界面&#xff0c;主题&#xff0c;光标&#xff0c;文件保存等选项。 VSCode 用户区设置 相关介绍命令行方式进行配置可视化组件方式进行配置 更新 相关介绍 基本原理&#xff1a; Visual Studio Code 会…

sizeof与strlen的使用及其区别

目录 1. sizeof 1.1sizeof简介 1.2 sizeof的使用 1.3 sizeof的使用注意事项 1.4 sizeof用于数组 2.strlen&#xff08;&#xff09;函数 3.区别 示例1 示例2 示例3 4.总结 1. sizeof 1.1sizeof简介 sizeof是一个编译时运算符&#xff0c;可用于任何变量名、类型名…

Realm Management Extension领域管理扩展之系统架构

RME不仅仅是一组处理器功能,为了充分利用RME引入的功能,系统的其余部分需要提供支持。 下图显示了一个示例系统以及引入RME后受到影响的组件: 主存储器保护 RME启用的系统包括内存加密和可能的完整性。基线加密要求支持对外部内存进行加密,使用每个PA空间的单独加密密钥或…

1131. 拯救大兵瑞恩(dp思想运用,set)

1131. 拯救大兵瑞恩 - AcWing题库 1944 年&#xff0c;特种兵麦克接到国防部的命令&#xff0c;要求立即赶赴太平洋上的一个孤岛&#xff0c;营救被敌军俘虏的大兵瑞恩。 瑞恩被关押在一个迷宫里&#xff0c;迷宫地形复杂&#xff0c;但幸好麦克得到了迷宫的地形图。 迷宫的…

文心一言 vs. ChatGPT:哪个更胜一筹?

文心一言 vs. ChatGPT&#xff1a;从简洁美到深度思考的文本生成之旅 近年来&#xff0c;文本生成工具的崛起使得人们在表达和沟通方面拥有了更多的选择。在这个领域中&#xff0c;文心一言和ChatGPT作为两个备受瞩目的工具&#xff0c;各自以独特的优势展现在用户面前。本文将…

Maven普通工程和web工程创建

文章目录 创建项目前设置maven工程前设置工作创建项目前--》设置utf-8配置maven参数Maven普通工程和web工程创建Maven简单工程第一步&#xff1a;File–New–Project 第二步&#xff1a;选择maven然后下一步&#xff1a;填写后询选择finish初始化maven工程目录简介maven简单工程…

单列的堆叠柱状图

目的 MSingleColumnStackBarChart类被设计用于创建只有单列的堆叠柱状图&#xff0c;用于血糖数据的统计。以下是封装这个类的目的的详细描述&#xff1a; 抽象复杂性&#xff1a; 通过创建MSingleColumnStackBarChart类&#xff0c;你将复杂的MPAndroidChart库的使用和配置封…

合并两个有序数组(简单)

一、题目 给你两个按 非递减顺序 排列的整数数组nums1和nums2&#xff0c;另有两个整数m和n&#xff0c;分别表示nums1和nums2中的元素数目。请你 合并 nums2到nums1中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a; 最终&#xff0c;合并后数组不应由…

PyTorch——torchtext与PyTorch匹配的版本

一、匹配版本的对照表 二、按照对应版本的命令 例子&#xff1a; pip install torchtext0.9.1参考资料&#xff1a; Torchtext and PyTorch s Version Compatibility

第七在线荣获百灵奖 Buylink Awards 2023零售圈年度卓越服务商品牌

1月11日&#xff0c;由零售圈主办、20零售连锁协会协办、30零售行业媒体支持的中国零售圈大会暨2024未来零售跨年盛典在西安落下帷幕&#xff0c;在这个零售行业盛典中&#xff0c;第七在线凭借其高精尖产品和卓越的服务质量成功入选&#xff0c;并荣获了“百灵奖 Buylink Awar…

基于 IDEA 创建 Maven 的 Java SE 工程和 Java Web 工程

一、概念简介 Maven 工程相对之前的项目&#xff0c;多出一组 gavp 属性&#xff0c;gav 需要我们在创建项目的时候指定&#xff0c;p 有默认值&#xff0c;我们先行了解下这组属性的含义。 Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写&am…

c语言嵌套循环

c语言嵌套循环 c语言嵌套循环 c语言嵌套循环一、c语言嵌套循环类型二、嵌套循环案例九九惩罚口诀 一、c语言嵌套循环类型 for(初始值&#xff1b;表达式&#xff1b;表达式) {for&#xff08;初始值&#xff1b;表达式&#xff1b;表达式&#xff09;{代码} }int main() {for (…

Springboot3新特性:GraalVM Native Image Support和虚拟线程(从入门到精通)

说明&#xff1a;都知道&#xff0c;我是搞java的&#xff0c;最近搞c的算法和redis数据库比较多&#xff0c;所以对于以下文章&#xff0c;都是我自己这样认为的&#xff0c;各位看完之后&#xff0c;可尽情评论。 GraalVM Native Image Support 具体用法 以往文章&#xff…

基于SSM的项目监管系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…