与鲲鹏代码迁移工具的初次邂逅
前情提要
来,先上官方视频链接:https://www.hikunpeng.com/zh/developer/live/detail/1533984621405396993
搭配本文,效果更佳哦!
鲲鹏代码迁移工具简介
鲲鹏代码迁移工具支持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)。
鲲鹏代码迁移工具功能介绍
软件迁移评估
软件迁移评估帮助用户分析用户x86环境上软件包安装路径中的SO库文件,并检查这些文件与鲲鹏平台的兼容性。支持Web界面和CLI命令行操作,当然,如果你希望用VS Code或IntelliJ也没问题,有相应的插件提供使用。
以Web界面为例,一般在已经登录鲲鹏代码迁移工具下:
-
在页面左侧,选择“软件迁移评估”。
-
在创建分析任务区勾选“分析软件包”或“分析已安装软件”,并对以下参数进行配置。
对应参数的具体说明,可以查看文档介绍。
- 单击“开始分析”,生成分析报告。
弹窗页面显示任务分析进度,分析完成后,单击“查看报告”进入“迁移报告”界面。
用户可在任务进行过程中单击关闭,取消任务。
支持多个用户同时创建分析任务。
-
分析完成后,在页面左侧,选择“软件迁移评估”。
-
在历史报告的列表中,单击指定分析任务的报告名称,进入“迁移报告”界面。
源码迁移
源码迁移功能分析用户C/C++/ASM/Fortran/Go/解释型语言软件的可迁移性,通过鲲鹏代码迁移工具可执行自动分析,生成分析报告,并指导用户如何迁移该文件。
来,介绍下大体步骤:
-
成功登录鲲鹏代码迁移工具。
-
在创建分析任务区对以下参数进行配置。
注意,申请的远程实验室使用,不是上图的编译器,应该是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
- 单击“开始分析”,生成分析报告。弹窗页面显示任务分析进度,分析完成后,单击“查看报告”进入“迁移报告”界面。在这里选择文件,鼠标悬浮于红波浪线的代码处,可以查看源码迁移建议。
若需要在原始代码中进行修改操作,务必随时对编辑的源码进行保存,否则可能会因为会话超时而丢失修改的代码。
软件包重构
分析x86平台上Linux软件包的构成及依赖性,将平台相关的依赖文件替换为鲲鹏平台兼容的版本,并重构成适用于鲲鹏平台的软件包。
软件包重构能够分析用户提供的x86软件包,并根据用户提供的资源文件尝试构建鲲鹏平台软件包。软件包重构需要用户在鲲鹏平台使用。
- 在已成功登录鲲鹏代码迁移工具的前提下。在Web工具的左边标题栏中,选择“软件包重构”。
- 填写“软件包存放路径”。可以通过以下两种方式实现:
单击“上传”按钮上传软件包。
先将软件包手动上传到服务器上本工具的指定路径下(例如:/opt/portadv/portadmin/packagerebuild/),给porting用户开读写和执行权限,再单击填写框选择下拉框中的软件包即可,也可以手动填写软件包名称。
-
单击下一步,配置依赖文件。
-
然后单击“确认重构”。
- 重构成功后,单击“下载重构软件包”可查看执行结果,如图所示。
专项软件迁移
专项软件迁移提供开源软件迁移、调优的工具化解决方案。用户可以按照解决方案的粒度选择相应的软件,进行工具化快速迁移软件。专项软件迁移包含软件下载、修改、编译和软件包构建功能,需要用户在基于鲲鹏的服务器环境使用。
专项软件迁移是对大数据、数据库、高性能计算和Web等场景的部分常用软件源码进行自动迁移、编译并构建生成鲲鹏平台兼容的软件包,该功能只支持在鲲鹏平台环境上运行。
增强功能
鲲鹏代码迁移工具提供下面四种增强功能:
64位运行模式检查
对用户C/C++软件从32位模式迁移到64位模式进行检查。工具强制以64位模式编译用户软件,并通过编译选项发现从32位模式迁移到64位模式的必要修改,并提示用户进行进一步检查。
结构体字节对齐检查
用户软件中的结构体变量进行检查,分析其内存分配情况,并反馈用户。
缓存行对齐检查
对C/C++源码中结构体变量进行128字节对齐检查,提升访存性能。
内存一致性检查
对用户软件迁移到鲲鹏平台可能存在的内存一致性问题进行检查、修复。自动修复工具需要更新用户使用的GCC编译器,随后在用户软件的编译过程中自动完成内存一致性问题的修复。
总结
鲲鹏代码迁移工具还是很强的,系统性强,功能比较完善,很不错,大大减轻人的迁移负担。
- 点赞
- 收藏
- 关注作者
评论(0)