绿盟赛—鲲鹏计算平台软件移植

前言

  • 在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进行性能测试的流程图:
在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KeaLoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值