你在服务器上跑过代码吗?哇~你跑过!是啥样的...每回见别人跑都会问并且羡慕会在大服务器上跑代码的哈哈哈在研究生刚开学前还甚至不知道什么是服务器,更是无法想象在除了自己能看得见摸得着的电脑屏幕之外跑代码的样子。直到有天开会自己坐在了一个大大的“黑箱子”旁边才知道这就是所谓的实验室服务器哇,这不就是加大版的台式电脑的主机嘛~
在犹豫和观摩了好久之后终于决定自己在实验室服务器上跑一次代码,因为自己是完全没有概念,所以搜了很多很多,有时候一口气打开二三十个搜索框才找到自己想要的答案,但是也很零散,所以决定记录一个自己从申请服务器账号到代码成功跑起来的全过程,见证成长同时希望帮助到你!
正文ing
首先,找有服务器账号创建权限的师哥师姐给自己申请一个账号,根据这个账号,输入服务器地址,就可以连接上实验室服务器啦
要下载一个软件,叫MobaXterm,在这个软件上可以连接到服务器,通过指令操作服务器。
下载地址:MobaXterm Xserver with SSH, telnet, RDP, VNC and X11 - Download。这就相当于一个连接器,连接上后这个页面可以可视化输入输出实验室服务器上的东西 。
连接熟练后,如果还是连接之前的服务器就可以从左侧记录栏里面直接点击链接上就好啦。
连接成功后,左侧就可以看到服务器上的文件夹啦,有可视化文件夹窗口,可以直接在窗口工具栏查看上下级文件夹目录、新建文件夹、删除文件夹等; 右侧就是linux命令输入框啦,其实就相当于Pycharm中的terminal终端命令输入窗口。
好了~以上就是对于实验室服务器的一个初步了解啦,其实就是把Pycharm的命令输入端换成服务器上的,从而操作服务器,利用服务器上的CPU、GPU资源
接着,开始配置可以跑代码的环境,其实这个配置环境和自己在电脑上跑代码配置环境的意思一模一样,就是把在电脑上配置环境做的那些工作再在服务器上做一遍,到这你是不是就明白了,其实真的就是我们的电脑性能不好,所以给他嫁接一个性能好的东西,然后跑我们的代码,所有操作都是一样的。
连接上实验室服务器后,可以看看是不是服务器上有预装好的Anaconda3环境,这样就不用自己再装了,直接初始化来用就好啦(如果找不到有Anaconda3的文件夹,直接看自己linux命令输入那里的用户名前面有没有"(base)"就可以了)
如果有,直接使用以下两句代码初始化python环境使用就可以
/opt/anaconda3/bin/conda init bash
source ~/.bashrc
如果没有,就需要自己去先配置Anaconda环境了,不过很好下载,只需要几行Linux命令(我在另一个服务器上就是自己配置的)此处只附上连接,博主写的很好,可以参考安装Anaconda和创建并激活conda虚拟环境:科研第一步:实现Linux服务器上创建python虚拟环境_无枒的博客-CSDN博客
此时,已经可以使用以下代码创建虚拟conda环境了(一般都是在自己创建的新的虚拟环境中改动,不要搞坏了系统上的~)
conda create -n 虚拟环境名 python=3.7
查看创建好的已有的conda环境
conda info -e
根据查询结果可以看到创建好的虚拟环境名和虚拟环境路径
虚拟环境默认路径都是在用户名下,为了大家都在实验室服务器上使用时的私密性,也就是都自动安装下载配置到/home/username下面,但是往往因为个人空间不足而不能占用太多/home下面的空间,此时可以更改路径到充足的文件夹下面。(经过我不停查找占用空间的文件夹,发现是虚拟环境所在文件夹和cache缓存文件夹,所以改个路径到空间大的地方)linux环境下conda更改pkg和env缓存路径_正丶好的博客-CSDN博客
改完路径后,再创建虚拟环境时就会发现路径到了你想要他到的地方,终于不在/home下面啦哈哈哈,试过别的办法,也可以指定下载路径,代码如下(但是创建出来的虚拟环境很麻烦,没有名字只有路径,可能因为中间的什么路径不匹配?我也不太懂,反正删除也麻烦,怎么都麻烦,所以干脆一步到位,把默认路径改了)
conda create --prefix=H:\Program file(x86)\envs python=3.7 #设置虚拟环境路径
这个时候,所有必备的环境就已经准备完成,可以新建各种包或者导入项目了,我建议先导入项目,直接运行,肯定会报错,缺乏各种包,到时候就知道缺什么了,缺什么就下载什么
关于将自己的项目导入到服务器上 :从pycharm上开始设置:Tools->Deployment->Configuration;
Tools->Deployment->UpLoad;File->Settings->Python InterpreterPycharm 实现本地与服务器代码同步_USTC_SC的博客-CSDN博客_pycharm如何和服务器保持一致
此时项目已经可以在服务器的文件夹视图窗口下拉里面看到了,并且Pycharm中也可以看到左右对应,左侧为本地文件夹,最右侧Remote host为服务器文件夹视图,更改本地代码,服务器代码也会自动更改
此时,如果环境路径设置正确,也就相当于pycharm和服务器环境接头好了, 就可以在pycharm中运行了;或者,直接在服务器里面运行
cd /icislab/volume1/yhl/projects/unet #先切换到.py文件目录下
python3 main.py #运行文件即可
不出意外,肯定会报错哈哈,因为很多包都没有安装。按照提示安装就好了
pip install 包名
普通安装可能太慢会安装不上,使用清华镜像
# 依次输入以下命令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
如果使用镜像还是很慢,可能会任务运行超时(ReadTimeoutError)
pip install --default-timeout=1000 要下载的第三方库名
(tips:如果你也需要torch包,直接下载torch太慢了并且太大了,老是出现问题,所以我直接下载torchvision,默认下载torch版本,这样很快,但是引用前提是对于torch版本没有自己的要求)
此时,除了自己的代码有bug外,环境上面还有安装包上面应该是没有问题了,可以运行咯哈哈哈
下面是一些小便利贴哈哈
有没有发现我没说怎么选择在服务器哪一块卡上面跑?怎么决定?怎么选?
nvidia-smi #查看所有卡使用状态
看看哪个空间剩余多就选择哪块卡号,在运行的代码文件上方指定
此时,如果1号卡上面有位置,代码就会顺利的在1号卡上跑了
如果遇到这种报错情况,那就是卡满了,等等或者选择另外的卡就好啦
结束啦 ~
至此,我这个小可爱第一次跑代码全程就结束啦!一个简单的代码从申请服务器账号开始到成功跑起来用了四天,这其中遇到各种错误麻烦远不止我贴出来的这些,每个博主大佬都是详细叙述了每一部分,但是没有发现哪个是我想要的那种从头到尾理一遍,所以自己干脆趁着思路还清晰写下来,希望能帮助到大家呀!第一次发博客,有很多不懂的地方,很多名词可能是自己形容的,有不对的欢迎批评指正!有的大佬写的很好,我是直接挂的链接,也不太懂,有侵权的滴滴我呀,看见马上删除改正。