本文主要讲的是如何在超算中心上创建虚拟环境并配置环境(安装相应的包,配置.yml环境),以及如何在超算中心上运行修改项目。
下一篇主要讲使用pycharm专业版连接远程服务器,使得项目能在pycharm上进行项目的修改,debug等。
如何在并行云计算中心创建虚拟环境并配置环境:
conda环境的加载,虚拟环境的创建,进入虚拟环境
conda module avail
module load miniforge3/24.11
(第一步就是实现一个加载conda环境的作用)
进入创建的虚拟环境Mamba38的方法:
1.
首先提示我要运行conda activate 之前,要先运行conda init,然后提示我要重新打开当前的shell,所以我退出,就是简单点叉号。
再重新打开后就变成这样了:
就跟conda环境一样了(前面几篇文章中有讲到关于annaconda的安装与使用)
(Conda是适用于任何语言的软件包、依赖项和环境管理系统)
就可以用熟悉的命令操作了,接下来就是安装相应的包了
总结一下就是:
module load miniforge3/24.11
conda init
#前两行加载conda环境
conda create -n Mamba38 python=3.8
#这一行创建虚拟环境
上面的Mamba是我的虚拟环境的名称,是什么都可以
上述完成之后,叉掉重新进入
然后:conda activate Mamba38 进入虚拟环境
配置环境
安装包
(以安装pytorch为例)
在安装包的时候遇到了问题,首先就是从外网下载包容易超时错误
所以目前考虑三种解决办法
1,在这个平台上使用vpn (pass了,因为超算上不能翻墙)
2,找到相应版本包的镜像资源
第一次用,知道怎么用了
比如说要下载pytorch 那就先复制官网上的下载命令,然后再在后面加一个学术加速
pip安装-i指定环境
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
(1)那我应该首先创一个虚拟环境
(这里我又创了个其他的虚拟环境,因为不是一起写的,上一个虚拟环境目前用不到)
(按照上面操作的这一步可以忽略)
conda create -n VGG16_10_38 python=3.8
(VGG16_10_38只是一个虚拟变量环境名)
(2)然后查看超算中心上我的gpu版本
(3)再在pytorch上复制相应的下载命令
(3)然后加上学术加速
注意学术加速前面有个-i
(4)检查是否安装成功
可以看到其实到绿色部分的时候就可以判断是安装成功了
为了保险起见可以先输入python
再输入import torch 如果没有报错就说明安装成功啦!
3,找客服安装
配置.yml环境
如何配置.yml文件要求的环境:
首先执行conda env create -f environment.yml创建环境,然后会报错pip那块的如果有不兼容的,
source activate python-38,source进入环境然后就手动安装pip那块,装完后就好了
run.sh脚本的编辑,作业的提交,取消等
【
SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如Telnet、FTP,使用明文传输数据,存在很多的安全隐患。SSH协议对网络数据进行加密和验证。SSH客户端是一种使用Secure Shell(SSH)协议连接到远程计算机的软件程序。PuTTY就是SSH客户端。Windows 操作系统可利用 PuTTY 进行安全 Shell(SSH)连接到 Linux 机器。
】
完整步骤: (创建配置完环境后)
首先cd到想要运行的项目目录下:注意这里不能加.
(以python文件为例,要cd到想要运行的.py文件所在的文件夹下)
【
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd或cd ~ 返回home目录
cd - 目录名 返回指定目录
如果当前目录在~/run/CTANet_new/test,想返回到~/run/CTANet_new,要使用命令cd ..
如果当前目录在~/run/CTANet_new,想到~/run/CTANet_new/test,要使用命令cd ./test (不要忘记加 . )
】
然后:
这里的第一行是创建run.sh文件(在目录~/run/CTANet_new/test目录下)
第二行是编辑run.sh 的意思
【
1、创建test.sh文件
touch test.sh
2、编辑sh文件
vi test.sh
(要先点i键,进入编辑模式,再编辑。退出的时候要先点Esc键,再输入:wq 按enter键退出)
3、保存退出
敲击esc, 然后输入 :wq ,回车退出
4、添加可执行权限,当然默认就是可执行的。
chmod +x test.sh
5、运行文件
(1)./test.sh
(2)sh test.sh
6、删除文件
rm test.sh
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.youkuaiyun.com/lanjianhun/article/details/8193860
】
第二行编辑run.sh的内容如下
#!/bin/bash
module load cuda/12.4 cudnn/8.9.6.50_cuda12 miniforge3/24.11
source activate VGG16_10_38
export PYTHONUNBUFFERED=1
python train.py
第一行不知道啥意思
第二行是加载你想用的cuda,cudnn版本。可以使用module avail cuda和module avail cudnn来查看都有哪些版本
第三行module load 是加载我们系统内安装好的软件 包括cuda cudnn 和python环境的管理器
第四行加载需要的虚拟环境
第五行export PYTHONBUFFERED=1是将python的缓存实时输出 ,避免提交任务之后python实际在运行但是不输出到out文件中,对运行没有影响
第六行是运行项目,如果要运行test.py文件,那就写成python test.py
注意!确保run.sh文件跟运行的项目要在同一文件夹下。这里就是train.py跟run.sh在同一文件夹下。
(我这个的虚拟环境的名称是python-38) (我这篇文章写了很久,所以中间换过好几次环境,这次是python-38)
然后要知道自己有几个卡的权限,如果只有8卡,运行项目的时候使用的也是8卡,那么当前项目没有运行完的情况下,其它项目就不能运行,只能排队等待。此时输入tail -f slurm-JOBID.out,查看没有在运行的项目时,就会出现
因为此时该项目还没有运行,所以没有输出文件。
等该项目运行时,就会有输出内容。
可以使用squeue命令查看当前都有哪些项目在排队等待
作业运行状态:
R:正在运行
PD:正在排队
CG:即将完成
CD:已完成
使用 scancel JOBID取消任务
在下面这张图的情况下ctrl+c只会终止out文件的输出,不会终止项目的运行,项目仍然在正常运行。
如果想修改项目的话 vim test1.py (但是这样修改就太麻烦了,因为一直在终端修改,修改位置找的也麻烦,保存文件啥的都麻烦,所以才有了下一篇的使用pycharm专业版连接远程服务器,方便项目在pycharm上修改)
1,每次修改项目之后,都要使用sbatch --gpus=8 run.sh来获得新的JOBID,
2,然后再tail -f slurm-JOBID.out来运行项目并显示out文件内容。
如果使用了pycharm专业版远程连接服务器后,每次修改项目之后都要“上传当前远程文件”,然后再进行1,2步骤
一些参考:
linux中:Ctrl + Insert 为复制, Shift + Insert 为粘贴 ctrl+z为命令撤回快捷键,即使不能撤销已经执行的命令,但可以将其暂停
ctrl+c退出
cat filename
会将指定文件的内容输出到终端上
要想复制,要把想复制的东西选中再按ctrl+insert