如何在远程服务器上运行本地项目

本文主要讲的是如何在超算中心上创建虚拟环境并配置环境(安装相应的包,配置.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,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。传统远程登录或文件传输方式,例如TelnetFTP,使用明文传输数据,存在很多的安全隐患。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 教程 | 菜鸟教程

linux中:Ctrl + Insert 为复制, Shift + Insert 为粘贴  ctrl+z为命令撤回快捷键,即使不能撤销已经执行的命令,但可以将其暂停

ctrl+c退出

cat filename 会将指定文件的内容输出到终端上

要想复制,要把想复制的东西选中再按ctrl+insert

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值