鲲鹏Devkit代码迁移工具课堂笔记—第一讲:鲲鹏代码迁移工具介绍
收藏回复举报
鲲鹏Devkit代码迁移工具课堂笔记—第一讲:鲲鹏代码迁移工具介绍
发表于2022-11-17 10:15:23
0 查看

Devkit代码迁移工具

【课堂笔记】

第一讲:鲲鹏代码迁移工具介绍

1:代码迁移工具介绍

1.1代码迁移工具是什么

为了解决用户代码可迁移性人工排查困难、移植经验欠缺、反复依赖编译调错定位等,投入工作量大,整体效率低的问题,推出Kunpeng Porting Advisor鲲鹏代码迁移工具。

鲲鹏代码迁移工具是一款可以简化应用迁移到鲲鹏架构服务器过程的工具。主要面向鲲鹏平台的开发者、用户和第三方待迁移软件提供方开发工程师,对海量代码进行快速地自动化扫描和分析,提供专业的迁移指导报告。同时能够自动分析出需修改的代码内容,并指导如何修改,帮助开发者实现高效的代码迁移。同时支持原生开发代码亲和检查等能力。

1.2代码迁移工具功能特性

代码迁移工具可以作为独立软件提供给鲲鹏生态用户安装使用,支持的功能特性如下

1.2.1软件迁移评估

检查用户提供的软件安装包,识别依赖关系,并提供鲲鹏兼容版本的so依赖库对应rpm的包OS发行版官方下载接

检查用户在x86服务器上已安装的软件,识别依赖关系,并提供鲲鹏兼容版本的so依赖库对应rpm的包OS发行版官方下载接。

1.2.2源码迁移

检查用户C/C++/汇编/Fortran代码软件构建工程文件,并指导用户如何迁移该文件

检查用户C/C++/汇编/Fortran/python/Java/Scala/Go软件构建工程文件使用的链接库,并提供可迁移性信息

检查用户C/C++/汇编/Fortran软件源码,并指导用户如何迁移源文件

1.2.3软件包重构

分析用户x86软件包构成,重构为适用于鲲鹏平台的软件包。

1.2.4专项软件迁移

基于我们丰富的软件迁移经验,帮助用户快速迁移Web、数据库、大数据、高性能计算四大解决方案类软件。

1.2.5鹏亲和分析

目前含64位运行模式检查、结构体字节对齐检查、缓存行字节对齐检查、内存一致性检查、构建亲和检查。

【温馨提示】

使用方式:支持命令行方式、Web、IDE插件三种工作模式,后两种方式下支持多用户(21)并发扫描。

限制:工具不支持迁移windows环境下的软件或者ISO/Mac OS平台应用至Kunpeng平台Linux环境下。

                                                                        图示

cke_2155.png

1.3应用场景

1.3.1:

cke_10457.png

1.3.2:

cke_14871.png

1.3.3:

cke_23357.png

1.4部署方式

代码迁移工具采用单机部署方式,部署环境要求如下:

cke_28488.png

1.5如何访问和使用

代码迁移工具提供两种用户访问模式,安装时由用户选择,同一套环境只能安装一种:

1.5.1CLI方式:

通过命令行方式使用代码迁移工具各功能,最终移植分析结果输出到.csv和.json文件,用户可以根据迁移建议进行处理。

1.5.2Web/IDE插件方式:

通过浏览器/IDE远程使用代码迁移工具各功能,最终迁移分析结果输出到.csv和.html文件(可下载)中,用户可以根据迁移建议进行处理。如果当前用户已经在登录使用,重新登录会挤掉前面的登录。用户的各种分析和迁移任务都在自己的工作空间内完成。访问Web界面时,对本地浏览器的要求如下图所示。

cke_34357.png

2:功能介绍

2.1源码迁移

识别C/C++/Fortran/汇编源代码,提供修改建议;Make、 CMake、 Automake编译选项、编宏的解析及迁移建议

支持100%Intrinsic函数转换(6000+个)包括MMX、SSE及 AVX Intrinsic等

支持 Fortran内联函数和语法特性以及编译选项的识别

支持Go语言迁移,对go程序使用cgo编译部分中的编译选项、宏定义提供兼容性检查,给出修改建议

支持 python、java、 Scala语言,对程序中的动态链接库提供兼容性检查,给出修改建议

cke_41504.png

    2.2源码迁移业务流程:

    cke_59028.png

2.3汇编翻译

(1):支持汇编代码自动识别,一键替换迁移,一分钟完成汇编代码的迁移。

(2):×86汇编常用指令100%识别,1000+指令自动翻译,覆盖80%的常用应用场景。

cke_67437.png

2.4软件迁移评估

     识别检查×86平台软件安装包或已安装软件中使用的动态链接库、静态链接库和可执行文件,并将检查出的文件与工具内置的依赖文件列表进行比较匹配,从而为用户提供迁移建议;

     Jar、war包扫描增强,识别鲲鹏平台已经支持的依赖,提供更精准的依赖兼容替换建议

cke_106923.png

2.5内存一致性

(1):静态检查,检查用户软件迁移到鲲鹏平台可能存在的弱内存序问题并修复

(2):自动修复功能,更新用户使用的GCC编译器,在用户软件的编译过程中自动完成弱内存序问题的修复

(3):支持下载静态检查工具产生的BC文件,可根据实际需要进行BC文件扫描分析

(4):静态检查工具、编译器自动修复工具组合使用,可一键式修复

(5):支持自动生成目标工程的中间文件,不需要用户修改编译脚本

3:案例演示

a:源码迁移

cke_121890.png

b:软件迁移和软件包重构

cke_136984.png

c:内存一致性

cke_153760.png

    d:专项软件迁移

cke_169484.png

本帖最后由 匿名用户2023/11/20 17:31:01 编辑

我要发帖子