与鲲鹏代码迁移工具的初次邂逅

举报
Tianyi_Li 发表于 2022/06/09 21:06:50 2022/06/09
【摘要】 鲲鹏代码迁移工具基础知识介绍。

前情提要

来,先上官方视频链接:https://www.hikunpeng.com/zh/developer/live/detail/1533984621405396993

搭配本文,效果更佳哦!

鲲鹏代码迁移工具简介

image.png

鲲鹏代码迁移工具支持IDE插件(VS Code、IntelliJ)浏览器两种工作模式。本工具分为客户端、服务器端两部分,需要安装后使用。

鲲鹏代码迁移工具是一款可以简化客户应用迁移到基于鲲鹏916/920的服务器的过程的工具。代码迁移工具可自动扫描并分析待迁移软件,提供可迁移性评估报告;也可对待迁移软件进行源码分析,准确定位需迁移的代码,并给出友好的迁移指导或一键代码替换;同时支持将x86软件包重构成鲲鹏平台软件包、专项软件一键迁移及其他增强功能等。注意仅适用于开发和测试环境,仅支持x86 Linux软件迁移到鲲鹏Linux上的扫描、分析与迁移。点击查看 鲲鹏代码迁移工具最新动态

操作系统要求openEuler 20.03 (LTS)、CentOS 7.6、Ubuntu18.04、麒麟V10、UOS 20等,详细的运行平台和操作系统对应关系请参见 兼容性查询工具

咱们这次训练营会申请远程实验室使用,官方建议大家申请的是openEuler 20.03 (LTS)

鲲鹏代码迁移工具功能介绍

软件迁移评估

image.png

软件迁移评估帮助用户分析用户x86环境上软件包安装路径中的SO库文件,并检查这些文件与鲲鹏平台的兼容性。支持Web界面和CLI命令行操作,当然,如果你希望用VS Code或IntelliJ也没问题,有相应的插件提供使用。

以Web界面为例,一般在已经登录鲲鹏代码迁移工具下:

  1. 在页面左侧,选择“软件迁移评估”。

  2. 在创建分析任务区勾选“分析软件包”或“分析已安装软件”,并对以下参数进行配置。

image.png

对应参数的具体说明,可以查看文档介绍

  1. 单击“开始分析”,生成分析报告。

弹窗页面显示任务分析进度,分析完成后,单击“查看报告”进入“迁移报告”界面。

用户可在任务进行过程中单击关闭,取消任务。
支持多个用户同时创建分析任务。

  1. 分析完成后,在页面左侧,选择“软件迁移评估”。

  2. 在历史报告的列表中,单击指定分析任务的报告名称,进入“迁移报告”界面。

image.png

源码迁移

源码迁移功能分析用户C/C++/ASM/Fortran/Go/解释型语言软件的可迁移性,通过鲲鹏代码迁移工具可执行自动分析,生成分析报告,并指导用户如何迁移该文件。

来,介绍下大体步骤:

  1. 成功登录鲲鹏代码迁移工具。

  2. 在创建分析任务区对以下参数进行配置。

image.png

注意,申请的远程实验室使用,不是上图的编译器,应该是GCC 7.3,具体对应关系在官方文档中有,如下:

openEuler 20.03 默认为BiSheng Compiler 2.1.0
openEuler 20.03 SP1 默认为GCC 7.3
openEuler 20.03 SP2 默认为GCC 7.3
openEuler 20.03 SP3 默认为GCC 7.3
  1. 单击“开始分析”,生成分析报告。弹窗页面显示任务分析进度,分析完成后,单击“查看报告”进入“迁移报告”界面。在这里选择文件,鼠标悬浮于红波浪线的代码处,可以查看源码迁移建议。

若需要在原始代码中进行修改操作,务必随时对编辑的源码进行保存,否则可能会因为会话超时而丢失修改的代码。

软件包重构

image.png

分析x86平台上Linux软件包的构成及依赖性,将平台相关的依赖文件替换为鲲鹏平台兼容的版本,并重构成适用于鲲鹏平台的软件包。

软件包重构能够分析用户提供的x86软件包,并根据用户提供的资源文件尝试构建鲲鹏平台软件包。软件包重构需要用户在鲲鹏平台使用。

  1. 在已成功登录鲲鹏代码迁移工具的前提下。在Web工具的左边标题栏中,选择“软件包重构”。

image.png

  1. 填写“软件包存放路径”。可以通过以下两种方式实现:

单击“上传”按钮上传软件包。

先将软件包手动上传到服务器上本工具的指定路径下(例如:/opt/portadv/portadmin/packagerebuild/),给porting用户开读写和执行权限,再单击填写框选择下拉框中的软件包即可,也可以手动填写软件包名称。

  1. 单击下一步,配置依赖文件。

  2. 然后单击“确认重构”。

image.png

image.png

  1. 重构成功后,单击“下载重构软件包”可查看执行结果,如图所示。

image.png

专项软件迁移

image.png

专项软件迁移提供开源软件迁移、调优的工具化解决方案。用户可以按照解决方案的粒度选择相应的软件,进行工具化快速迁移软件。专项软件迁移包含软件下载、修改、编译和软件包构建功能,需要用户在基于鲲鹏的服务器环境使用。

专项软件迁移是对大数据、数据库、高性能计算和Web等场景的部分常用软件源码进行自动迁移、编译并构建生成鲲鹏平台兼容的软件包,该功能只支持在鲲鹏平台环境上运行。

增强功能

image.png

鲲鹏代码迁移工具提供下面四种增强功能:

64位运行模式检查

对用户C/C++软件从32位模式迁移到64位模式进行检查。工具强制以64位模式编译用户软件,并通过编译选项发现从32位模式迁移到64位模式的必要修改,并提示用户进行进一步检查。

结构体字节对齐检查

用户软件中的结构体变量进行检查,分析其内存分配情况,并反馈用户。

缓存行对齐检查

对C/C++源码中结构体变量进行128字节对齐检查,提升访存性能。

内存一致性检查

对用户软件迁移到鲲鹏平台可能存在的内存一致性问题进行检查、修复。自动修复工具需要更新用户使用的GCC编译器,随后在用户软件的编译过程中自动完成内存一致性问题的修复。

总结

鲲鹏代码迁移工具还是很强的,系统性强,功能比较完善,很不错,大大减轻人的迁移负担。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。