绿盟赛—鲲鹏计算平台软件移植
目录
- 前言
- 使用鲲鹏平台的背景及意义
- “鲲鹏”满足了市场对算力的需求
- 我要用"鲲鹏”, 我要注意什么?
- 软件迁移原理和迁移过程
- 软件迁移原理概述
- 计算技术栈与程序执行过程
- 鲲鹏处理器与x86处理器的指令差异
- 从源码到可执行程序
- 软件迁移过程概述
- 五个阶段完成软件迁移
- 阶段一:软件移植-软硬件技术栈整体迁移策略
- 阶段二:开源软件源码编译移植
- 迁移和测试工具的介绍
- 迁移工具介绍
- 华为鲲鹏代码迁移工具是什么
- 华为鲲鹏代码迁移工具逻辑架构
- 华为鲲鹏代码迁移工具业务流程
- 功能特性
- 应用场景
- 部署方式
- 如何访问和使用
- 代码迁移工具安装演示
- 测试工具介绍
- 测试工具-BenchmarkSQL
- 测试工具安装演示
- 华为鲲鹏平台应用软件移植
- 源码分析
- C/C+ +类应用移植
- 源码分析
- 源码编译
- 源码编译流程
- 软件性能测试
- 测试流程
前言
- 在5G、AI、云计算、大数据等技术推动下,各行各业对计算平台提出端云
同构、海量多样化数据智能处理、实时分析等需求。Kunpeng处理器提供
的强劲算力底座,将在各行业数字化转型过程中发挥重要作用。 - 当前影响应用鲲鹏计算平台使用的主要瓶颈在于,各行业现有的业务系统
多是基于X86平台搭建,如果要将原有的业务软件部署到鲲鹏平台, 往往需
要进行软件的迁移,本实验主要以PostgreSQL为例,介绍了软件从X86平
台迁移到鲲鹏平台的过程。
使用鲲鹏平台的背景及意义
“鲲鹏”满足了市场对算力的需求
- 世界正在进入万物互联的时代,移动智能终端逐渐取代传统PC。单一计算架构无法满足,不同应用场景对计算的需求。
我要用"鲲鹏”, 我要注意什么?
- 基于华为芯片的强大算力, 华为鲲鹏能够满足多种应用场景的需求,并满足行业在数字化转型中对算力的需求,将在各行业数字化转型过程中发挥重要作用。
- 芯片算力充足,产业系统完善,适用行业多样,但是应用丰富度还有待完善。传统应用不能完全直接部署到鲲鹏平台上,部分应用可以通过使用软件迁移的办法来部署到鲲鹏平台。
软件迁移原理和迁移过程
软件迁移原理概述
计算技术栈与程序执行过程
鲲鹏处理器与x86处理器的指令差异
从源码到可执行程序
软件迁移过程概述
五个阶段完成软件迁移
阶段一:软件移植-软硬件技术栈整体迁移策略
阶段二:开源软件源码编译移植
( C/C+ +代码)
Java
迁移和测试工具的介绍
迁移工具介绍
华为鲲鹏代码迁移工具是什么
华为鲲鹏代码迁移工具主要面向鲲鹏平台的开发者、用户和第三方待移植软件提供方开发工程师,用来分析待移植软件源码文件,并给出代码移植指导报告,同时能够自动分析出需修改的代码内容,并指导如何修改,帮助用户顺利完成应用从x86平台向鲲鹏平台的移植。
华为鲲鹏代码迁移工具逻辑架构
华为鲲鹏代码迁移工具业务流程
功能特性
华为鲲鹏代码迁移_ I具可以作为独立软件提供给用户安装使用,支持的功能特
性如下:
● 检查用户软件C/C+ +软件构建工程文件,并指导用户如何移植该文件。
- 举例: Makefile文件检查结果中,原始文件中存在编译选项-m32 ,工具建议移植到鲲鹏平台时请删除该编译选项。
- m32是x86 32位应用编译选项, m32选项设置int为32bits及long、指针为32 bits ,为AMD的x86架构生成代码。在鲲鹏平台无法支持。
● 检查用户软件C/C+ +软件构建_ [程又件使用的链接库,开提供
可移植性信息。
- 举例:移植报告检查结果中,原始文件中存在软件构建I程文件使用的
SO链接库,工具建议下载已有二进制安装包,然后上传至目标服务器进
行安装使用即可。
● 检查用户软件C/C+ +源码,并指导用户如何移植源文件。
- 举例:对于用户软件CTE+ +源码,工具主要检查编译器宏、builtin函数、 attributes等,并提供移植建议。
1 ) 对于编译器宏中的_ x86 64/字段,工具建议移植到鲲鹏平台时请删除该字段。
2)对于使用编译器自带的builtin函数_ builtin. _ia32. .crc32qi( a, _ b);,工具建议修改为_builtin. aarch64 crc32bE a _b);检查用户软件中x86汇 编代码,并指导用户如何移植。 - 举例:对于用户软件x86内存操作的汇编指令,需要从mov指令替换为ldr x0, [x1] &
str x0, [x2]指令。CRC32C校验值计算的汇编指令,需要从crc32q指令替换为crc32cb.crc32ch、crc32cw、 crc32cx指令。 无条件跳转的汇编指令,需要从JMP指令替换为b指令。.
● 支持命令行和Web两种访问方式。
● 支持SO依赖库白名单升级。
应用场景
部署方式
华为鲲鹏代码迁移工具采用单机部署方式,即将工具部署在用户的开发、生产环境的x86服务器或云服务器上。部署环境要求如下表所示。
如何访问和使用
华为鲲鹏代码迁移I具提供CLI和Web两种访问方式,安装时由用户选择,只能安装一种。
- CLI方式:
通过命令行方式使用代码迁移工具各功能,最终移植分析结果输出到.csv文件,用户可以根据移植建议进行处理。 - Web方式:
通过浏览器远程使用代码迁移工具各功能,最终移植分析结果输出到.csv或者.htm|文件中,用户可以根据移植建议进行处理。工具只允许一个用户工作 , 不支持多用户在线和并发访问。工具具有用户管理功能,由管理员创建和管理。每个用户需要创建自己的工作空间,每个用户的代码扫描任务都在各自的工作空间内完成。
代码迁移工具安装演示
操作步骤:
●解压Porting-advisor-bete-x86_ _64-linux-1.0.5.tar.gz软件包.
tar -zxvf Porting-advisor-beta-x86_ _64-linux-1.0.5.tar.gz
●安装其Web模式。
sh install.sh web
测试工具介绍
测试工具-BenchmarkSQL
- Java语言编写,内嵌TPCC测试脚本的TPCC基础测试程序。
- 通过JDBC连接数据库,执行TPCC模型测试。
- 支持数据库:
Oracle
PostgreSQL
EnterpriseDB
DB2
SQL Server
GaussDB
测试工具安装演示
- 编译安装需求
-JDK7或以上版本 - 编译安装
-解压缩源码包
Unzip benchmarksq1-5.0.zip
-切换到压缩包一-级目录,执行ant编译
cd benchmarksql
ant
华为鲲鹏平台应用软件移植
源码分析
C/C+ +类应用移植
基于编译型语言开发的应用程序,例如C/C+ +语言应用程序,其编译后得到可执行程序,可执行程序执行时依赖的指令是CPU架构相关的。因此,基于x86架构编译的C/C+ +语言应用程序,无法直接在TaiShan服务器或华为鲲鹏云服务器上运行,需要进行移植编译。
应用移植的流程如下:
源码分析
- Step 1登录代码迁移工具Web界面。
在浏览器地址栏输入https:// 部署服务器的TP:端口号;例如:
https:// 10.116.239.242.8084 ,默认用户名为portadmin ,默认密码为Admin@9000 - Step 2 ( 可选)如果需要使用其他用户登录Web界面进行移植分析时,请单击界面右上角用户名下拉列表,选择“用户管理”, 然后创建用户。创建用户后,工具自动创建该用户的工作空间。
- Step 3使用WinSCP工具将源码文件上传至代码迁移工具所在服务器的"/opt/portadv/用户名"路径下。
例如管理员用户上传至opt/portadv/portadmin"下。 - Step 4使用默认管理员或新创建的普通用户登录代码迁移工具Web界面。
- Step 5新建源码移植分析任务。参数说明如下表所示。
- Step 6单击“分析”,立即启动源码可移植性分析。
- Step 7分析完成后,在右侧"历史报告”区域单击具体执行时间点的报告,即可查看详细的移植分
析结果。
源码编译
源码编译流程
源码编译通常有交叉编译和直接编译两种方法,此实验使用的是直接编译的方法。整个源码编译的过程分为以下三个步骤:安装配置编译环境,编译软件,验证编译结果。
软件性能测试
测试流程
如下是使用测试工具BenchmarkSQL进行性能测试的流程图:
绿盟赛—鲲鹏计算平台软件移植相关推荐
- 绿盟赛—鲲鹏软件迁移实践
目录 鲲鹏软件迁移概述 为什么要做软件迁移 计算技术栈与程序执行过程 鲲鹏处理器与x86处理器的指令差异 软件迁移过程概述 五个步骤完成软件迁移 迁移准备--搜集软件栈信息,准备迁移环境 迁移分析-- ...
- 奇安信代码安全实验室获授华为鲲鹏计算平台漏洞奖励计划合作伙伴
聚焦源代码安全,网罗国内外最新资讯! 近日,华为鲲鹏计算平台漏洞奖励计划合作伙伴授牌仪式在北京举行.奇安信代码安全实验室凭借出色的漏洞攻防研究能力获得授牌,与华为鲲鹏计算平台达成合作伙伴 ...
- 绿盟赛—ModelArts实现智能花卉识别
目录 概述 人工智能的概念 人工智能的应用 为什么需要花卉识别 传统花卉识别智能化的诉求 智能花卉识别的概念 ModelArts实现智能花卉识别的优势 智能化的趋势 人工智能的市场 解决方案 传统AI ...
- 【观察】从《鲲鹏计算产业发展白皮书》,看万亿级计算产业大蓝海
申耀的科技观察 读懂科技,赢取未来! 毫无疑问,如今的世界正在以加速度进入到智能时代,"物理世界信息化.信息世界智能化"就是其中最为重要的特征体现,这种巨大的变化对计算产业显然也提 ...
- PAS安全:绿盟软件扫描,报“检测到目标主机可能存在缓慢的HTTP拒绝服务攻击“漏洞如何解决?
[问题描述] 绿盟软件扫描PAS6.5,报"检测到目标主机可能存在缓慢的HTTP拒绝服务攻击"漏洞如何解决? [解决方案] 在PAS左侧菜单>配置>server-con ...
- 经历--比赛绿盟_安全研究员
笔试绿盟_安全研究员 今天收集了一些绿盟的资料和市面上的笔试资料啥的 面试绿盟--安全研究员 职位要求: 1. 本科以上学历,有较强的逆向工程能力,熟练掌握至少一种逆向工具: 2. 熟悉C/C++语 ...
- 绿盟安全事件响应观察漏洞频繁爆发
漏洞频繁爆发 系统或应用的安全疏漏.安全人员对利用方式的公开.黑客对 PoC 恶意散播等均有可能导致 0day 漏洞的爆发.2019 年,绿盟科技监测到网络上出现较多的 0day 漏洞公开信息,根据众 ...
- 切磋、秘笈、扬名:当“武林大会”邂逅鲲鹏计算产业
文 | 曾响铃 来源 | 科技向令说(xiangling0815) 铸剑当折剑,英雄我与君. 在金庸老先生构筑的武侠世界中,武林大会一直是一个重要且充满传奇色彩的元素.江湖中的武林大会我们已经无缘再见 ...
- 阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171127)
概况介绍 大数据计算服务(MaxCompute,原名ODPS,产品地址:https://www.aliyun.com/product/odps)是一种快速.完全托管的TB/PB级数据仓库解决方案.Ma ...
最新文章
- Python图像处理,cv2模块,OpenCV实现人脸检测蔡徐坤
- java assert使用场景_Java线程池的四种用法与使用场景
- 百度地图的两套JavaScript API
- 修改wireshark协议解析规则
- mysql 更新索引_MySQL索引优化
- 说一下 runnable 和 callable 有什么区别?
- c语言 拆分 文件,linux 将一个大文件分割成小的碎片文件 命令:csplit
- 【Java习作】KWIC模拟
- 多线程的那点儿事(之死锁)
- 无代码开发究竟是不是伪需求?
- Eclipse下设置github开发环境
- python3 linux
- 1004. 成绩排名 (20)
- Airprint across subnets(2)
- Best Time to Buy and Sell Stock II(leetcode)
- 2010年中国十大网络电视排行榜(转)
- 用批处理调用Rundll32添加打印机命令说明文件
- 备案服务器查询网站,网站服务器备案查询
- 用Excel进行频域分析
- 3.5 基本属性测试
热门文章
- 阿里maven镜像无法使用 导入jar失败 创建项目失败 Could not transfer metadata org. apache. maven. plugi ns:
- 四、GStreamer基础
- Kubernetes-HA高可用架构
- MOOC战德臣数据库课程自用笔记_5_SQL复杂查询与视图
- 数字温度计的c语言编程,基于DS18B20数字温度计的设计(全文完整版)
- Vue中使用dayjs
- 大学vb考试必背题库
- EOS智能合约开发与交互
- 机器学习超全数据集汇总
- 【代码审计】LaySNS_v2.2.0 前台XSS跨站脚本漏洞