Linux下跑C++程序的操作笔记(跑视频编码程序)

今天记录一下自己实验室在“天河”计算机上跑程序的流程,怕以后忘记了。由于天河的操作是基于Linux的操作,所以一些指令比较生疏,如有不准确的地方还请指正。

一、首先需要连接虚拟专用网络(这个大家应该都懂,要是写缩略就不能过审)
①下载SSL虚拟专用网络客户端,然后在“开始程序”中打开“Hillstone Secure Connect”填写服务器域名地址、端口、用户名、密码,点击“登录”即可。
1.互联网客户端填写顺序如下:(这里个人账号涉及保密,就没填写)
服务器:
端口号:
账号:
密码:

二、然后需要登陆天河,使用Xshell或者Xftp,登录步骤如下:
① 打开 XShell,点击工具栏的“新建”选项。在“连接”的“常规”里,“协议”选择 SSH,然后在“主机”处填写系统 IP。再紧接着填写端口号。
在这里插入图片描述
② 在“用户身份验证”这里,“方法”选择 Public Key,然后点击“浏览”选择得到的 Private Key 文件,然后点击“确定”即可登录。
在这里插入图片描述
三、具体的编解码的操作流程

  1. VVC6.0中的.gz的下载,复制到xftp,——>百度一下gz文件的解压方法。

  2. 进入到VVC6.0中,新建一个build文件夹,然后在Xshell中:cd 地址"(这个地址直接从xftp的Linux目录下复制,比如:/BIGDATA1/nwpu_swan_1/VVC/VTM6.0/VVCSoftware_VTM-VTM-6.0/build,然后在Xshell中用Shift+Insert进行粘贴)

  3. 然后执行指令:cmake … -DCMAKE_BUILD_TYPE=Release(如果Cmake的版本过低,处理方法为,执行指令:module load cmake/3.12.3-gcc-4.8.5 自使用配置对应版本的cmake)
    4. 以上的准备操作,就相当于在Windows中进行VTM的解压,以及build的生成和cmake过程。

  4. 在Cmake之后,将所需的source文件放入VTM(这里是VTM6.0)的大目录中(就和Windows下一样的操作),然后用在Xshell,cd进build的目录下。执行指令:make -j。(这一步的目的就是为了得到EncoderAppStaic和DecoderAppStaic,这就相当于Windows下生成编解码的exe可执行文件)。

  5. 将本地电脑上的“单测试方案”文件夹中的三个cfg文件(encoder_intra_vtm.cfg、encoder_randomaccess_vtm.cfg、classF.cfg)更新为最新的VTM版本(这里是VTM6.0)中的cfg。然后将更新好的“单测试方案”文件夹复制到xftp的最外层的“test”路径下对应的文件夹(这里是VTM6.0)中,然后根据自己的方案更改名字。

  6. 把上述生成的两个Staic文件从xftp中拿出到自己的本地电脑中,然后在从本地电脑中将两个Static粘贴到上述更新好的“单测试方案”中的每一个子test文件夹(test1、test2。。。。)中(之所以这么麻烦,是因为Linux中没法直接将一个文件从一个文件夹复制到另一个文件夹中,因此必须找本地电脑作为中转)。
    8. 以上的操作就是相当于Windows下,将可执行文件.exe挨个复制到各个测试序列的批量处理(bat)的文件夹中,为接下来的一口气执行编码做准备。

  7. 在Xshell中,cd到“单测试方案”的文件路径下;
    然后执行指令:find -name “.bat" -exec dos2unix {} \,将bat文件全部改为Linux下的格式;再执行指令:find -name ".sh” -exec dos2unix {} \,将sh文件全部改为Linux下的格式;(.sh文件的作用就好比将一个子test文件夹下的所有bat文件整合起来,同时并行将其运行起来)。

  8. 再执行指令“chmod_R 777”+“单测试方案”的文件路径。

  9. 先cd到每个子test文件夹下,然后执行指令:yhbatch -N 3 -n 37 -p bigdata test3.sh
    这里有三点需要去注意:
    ① -N和 -n后面的数字,需要去每个子test文件夹下的.sh文件夹中去对应(每四个子test的数字是一样的)
    ② 最后的test.sh根据每个子test文件夹中.sh文件的名字来写的

  10. 正确提交作业会显示
    在这里插入图片描述

  11. 提交完作业以后,需要检查一下跑的对不对,就看每个子test目录下的slurm文件是否为0byte,是0byte就说明正常运行。(slurm文件就是记录错误的日志文件)。可以执行指令:yqh查看作业运行状态:
    在这里插入图片描述

  12. 跑完编码后,会生成.log文件,将全部的.log文件拿出来以后,用py脚本文件运行一遍就可以将数据统计出来了。

Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02TCPIP基础(二) 最大传输单元(MTU)/路径MTU 以太网帧格式 ICMP ARP RARP 03TCPIP基础(三) IP数据报格式 网际校验和 路由 04TCPIP基础(四) TCP特点 TCP报文格式 连接建立三次握手 连接终止四次握手 TCP如何保证可靠性 05TCPIP基础(五) 滑动窗口协议 UDP特点 UDP报文格式 Linux网络编程之socket编程篇 06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection) 点对点聊天程序实现 09socket编程(四) 流协议与粘包 粘包产生的原因 粘包处理方案 readn writen 回射客户/服务器 10socket编程(五) read、write与recv、send readline实现 用readline实现回射客户/服务器 getsockname、getpeername gethostname、gethostbyname、gethostbyaddr 11socket编程(六) TCP回射客户/服务器 TCP是个流协议 僵进程与SIGCHLD信号 12socket编程(七) TCP 11种状态 连接建立三次握手、连接终止四次握手 TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用select改进第八章点对点聊天程序 16socket编程(十一) 套接字I/O超时设置方法 用select实现超时 read_timeout函数封装 write_timeout函数封装 accept_timeout函数封装 connect_timeout函数封装 17socket编程(十二) select限制 poll 18socket编程(十三) epoll使用 epoll与select、poll区别 epoll LT/ET模式 19socket编程(十四) UDP特点 UDP客户/服务基本模型 UDP回射客户/服务器 UDP注意点 20socket编程(十五) udp聊天室实现 21socket编程(十六) UNIX域协议特点 UNIX域地址结构 UNIX域字节流回射客户/服务 UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍(二) 死锁 信号量 PV原语 用PV原语解决司机与售票员问题 用PV原语解决民航售票问题 用PV原语解决汽车租赁问题 25System V消息队列(一) 消息队列 IPC对象数据结构 消息队列结构 消息队列在内核中的表示 消息队列函数 26System V消息队列(二) msgsnd函数 msgrcv函数 27System V消息队列(三) 消息队列实现回射客户/服务器 28共享内存介绍 共享内存 共享内存示意图 管道、消息队列与共享内存传递数据对比 mmap函数 munmap函数 msync函数 29System V共享内存 共享内存数据结构 共享内存函数 共享内存示例 30System V信号量(一) 信号量 信号量集结构 信号量集函数 信号量示例 31System V信号量(二) 用信号量实现进程互斥示例 32System V信号量(三) 用信号集解决哲学家就餐问题 33System V共享内存与信号量综合 用信号量解决生产者消费者问题 实现shmfifo 34POSIX消息队列 POSIX消息队列相关函数 POSIX消息队列示例 35PO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值