今天记录一下自己实验室在“天河”计算机上跑程序的流程,怕以后忘记了。由于天河的操作是基于Linux的操作,所以一些指令比较生疏,如有不准确的地方还请指正。
一、首先需要连接虚拟专用网络(这个大家应该都懂,要是写缩略就不能过审)
①下载SSL虚拟专用网络客户端,然后在“开始程序”中打开“Hillstone Secure Connect”填写服务器域名地址、端口、用户名、密码,点击“登录”即可。
1.互联网客户端填写顺序如下:(这里个人账号涉及保密,就没填写)
服务器:
端口号:
账号:
密码:
二、然后需要登陆天河,使用Xshell或者Xftp,登录步骤如下:
① 打开 XShell,点击工具栏的“新建”选项。在“连接”的“常规”里,“协议”选择 SSH,然后在“主机”处填写系统 IP。再紧接着填写端口号。
② 在“用户身份验证”这里,“方法”选择 Public Key,然后点击“浏览”选择得到的 Private Key 文件,然后点击“确定”即可登录。
三、具体的编解码的操作流程
-
VVC6.0中的.gz的下载,复制到xftp,——>百度一下gz文件的解压方法。
-
进入到VVC6.0中,新建一个build文件夹,然后在Xshell中:cd 地址"(这个地址直接从xftp的Linux目录下复制,比如:/BIGDATA1/nwpu_swan_1/VVC/VTM6.0/VVCSoftware_VTM-VTM-6.0/build,然后在Xshell中用Shift+Insert进行粘贴)
-
然后执行指令:cmake … -DCMAKE_BUILD_TYPE=Release(如果Cmake的版本过低,处理方法为,执行指令:module load cmake/3.12.3-gcc-4.8.5 自使用配置对应版本的cmake)
4. 以上的准备操作,就相当于在Windows中进行VTM的解压,以及build的生成和cmake过程。 -
在Cmake之后,将所需的source文件放入VTM(这里是VTM6.0)的大目录中(就和Windows下一样的操作),然后用在Xshell,cd进build的目录下。执行指令:make -j。(这一步的目的就是为了得到EncoderAppStaic和DecoderAppStaic,这就相当于Windows下生成编解码的exe可执行文件)。
-
将本地电脑上的“单测试方案”文件夹中的三个cfg文件(encoder_intra_vtm.cfg、encoder_randomaccess_vtm.cfg、classF.cfg)更新为最新的VTM版本(这里是VTM6.0)中的cfg。然后将更新好的“单测试方案”文件夹复制到xftp的最外层的“test”路径下对应的文件夹(这里是VTM6.0)中,然后根据自己的方案更改名字。
-
把上述生成的两个Staic文件从xftp中拿出到自己的本地电脑中,然后在从本地电脑中将两个Static粘贴到上述更新好的“单测试方案”中的每一个子test文件夹(test1、test2。。。。)中(之所以这么麻烦,是因为Linux中没法直接将一个文件从一个文件夹复制到另一个文件夹中,因此必须找本地电脑作为中转)。
8. 以上的操作就是相当于Windows下,将可执行文件.exe挨个复制到各个测试序列的批量处理(bat)的文件夹中,为接下来的一口气执行编码做准备。 -
在Xshell中,cd到“单测试方案”的文件路径下;
然后执行指令:find -name “.bat" -exec dos2unix {} \,将bat文件全部改为Linux下的格式;再执行指令:find -name ".sh” -exec dos2unix {} \,将sh文件全部改为Linux下的格式;(.sh文件的作用就好比将一个子test文件夹下的所有bat文件整合起来,同时并行将其运行起来)。 -
再执行指令“chmod_R 777”+“单测试方案”的文件路径。
-
先cd到每个子test文件夹下,然后执行指令:yhbatch -N 3 -n 37 -p bigdata test3.sh
这里有三点需要去注意:
① -N和 -n后面的数字,需要去每个子test文件夹下的.sh文件夹中去对应(每四个子test的数字是一样的)
② 最后的test.sh根据每个子test文件夹中.sh文件的名字来写的 -
正确提交作业会显示
-
提交完作业以后,需要检查一下跑的对不对,就看每个子test目录下的slurm文件是否为0byte,是0byte就说明正常运行。(slurm文件就是记录错误的日志文件)。可以执行指令:yqh查看作业运行状态:
-
跑完编码后,会生成.log文件,将全部的.log文件拿出来以后,用py脚本文件运行一遍就可以将数据统计出来了。