【系列一:DevKit代码迁移工具】第三讲:《megahit 源码迁移》项目大作业解析

举报
Tianyi_Li 发表于 2022/11/27 16:53:58 2022/11/27
【摘要】 鲲鹏代码迁移工具是一款可以简化客户Linux应用迁移到基于鲲鹏916/920的服务器或鲲鹏云服务(弹性云服务器KC1实例裸金属服务器)过程的工具。为了保证用户在鲲鹏平台上有更好的体验,需要提前评估需要迁移到鲲鹏平台的源码包、软件包是否兼容,以相关依赖文件是否存在于鲲鹏平台,使用迁移工具可以满足这一需求。

【系列一:DevKit代码迁移工具】第三讲:《megahit 源码迁移》项目大作业解析

导读

鲲鹏代码迁移工具是一款可以简化客户Linux应用迁移到基于鲲鹏916/920的服务器或鲲鹏云服务(弹性云服务器KC1实例裸金属服务器)过程的工具。

为了保证用户在鲲鹏平台上有更好的体验,需要提前评估需要迁移到鲲鹏平台的源码包、软件包是否兼容,以相关依赖文件是否存在于鲲鹏平台,使用迁移工具可以满足这一需求。

image.png

整个迁移流程如下图所示,这个之前也介绍过哈:

image.png

Megahit 源码迁移实战

迁移

Megahit是一个超快速和内存高效的NGS汇编程序。它是针对多基因组优化的,但也适用于一般的单基因组组装和单细胞组装。Megahit源码包存在大量汇编,迁移到鲲鹏平台前需要识别并验证通过“鲲鹏代码迁移工具”迁移后的代码是否正确,以及识别出是否还有“鲲鹏代码迁移工具”遗漏的相关文件。

image.png

具体环境要求如下:

image.png

前提和操作步骤如下:

image.png
image.png
1669538650728.png
image.png
image.png
image.png

具体修改信息如图所示:

image.png
image.png
image.png

修改完成后,一定要单击“保存”,确保修改保存了。

迁移后,重新编译

image.png
image.png
image.png
image.png
image.png

运行和验证

image.png
image.png

总结

鲲鹏代码迁移工具可以极大的简化软件包迁移到鲲鹏平台的过程,当有x86平台上源代码的软件要迁移到基于鹏916/920的服务器上时,既可以使用该工具分析可迁移性和迁移投入,也可以使用该工具自动分析出需修改的代码内容,并指导如何修改。

学习完本课程后,加深开发者对软件迁移工具的认识,同时帮助开发者了解如何使用该工具,提高开发者软件源码的迁移效率。

到这里,整个DevKit代码迁移工具算告一段落了,DevKit代码迁移工具包含五大功能。其中,我觉得最有意思的就是源码迁移了,扫描并自动分析软件代码(包括C/C++/Fortran/汇编/Python/Java/Scala/Go等),评估迁移所需替换的依赖文件,并给出程序源码中的修改建议,并将程序源码中的x86汇编指令翻译成功能对等的鲲鹏汇编指令。用户可以根据工具提供的修改建议快速完成源码修改,建议中包含的源码甚至可一键替换,直接编译使用。这样,可以大大减轻迁移的人工成本,并且在我们实践的例子中,都挺不错的,效果也很好。

但是,从另一个角度来看,实践的例子还是比较简单的,而实际生产和生活中的项目可能比较复杂,特别是有多代人积累的代码,不好动啊。再有一个,在迁移一个一个小项目的时候,如果最终是将这些小项目组合起来或用去其他项目,不知道时候能胜任,我觉得这里要多多测试一下。

最后,DevKit代码迁移工具还是挺好用的,但这背后是华为鲲鹏工程师和其他开发者的努力,还是集结众人智慧的成果,是一款较能提升效率的工具吧。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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