Devkit代码迁移工具——smartdenovo源码迁移

news2025/7/18 5:50:47

smartdenovo源码迁移

迁移前准备工作
1、服务器和操作系统正常运行。
2、PC端已经安装SSH远程登录工具。
3、Porting Advisor已在准备好的x86平台环境和鲲鹏平台环境中完成安装并正常运行。
4、待迁移的相关软件包、源代码已准备就绪。
迁移步骤
1、利用Porting Advisor的源码迁移功能对获取到的smartdenovo源代码进行扫描,获取其SO库依赖关系、可迁移性、迁移工作量等分析结果。
2、根据Porting Advisor的源码迁移功能分析得到的smartdenovo依赖关系去准备对应的SO库。
3、检查smartdenovo源代码的源代码分析报告,获取编译构建文件、.h/.c等源代码文件的修改建议,并根据修改建议进行修改。
4、用修改后的源代码进行编译,生成鲲鹏版本的smartdenovo软件。
5、使用鲲鹏版本的smartdenovo软件进行部署和简单的验证。

一、获取源码包**

访问github获取源码包
https://github.com/ruanjue/smartdenovo
使用命令
git clone https://github.com/ruanjue/smartdenovo
git下可能会出现网络不通的情况
在这里插入图片描述
这里继续尝试使用以下命令获取zip压缩包文件

wget https://github.com/ruanjue/smartdenovo/archive/refs/heads/master.zip

获取压缩包的情况会好很多

在这里插入图片描述
获取到压缩包后使用以下命令进行解压缩

unzip  unzip master.zip

然后清理掉压缩包

rm -rf master.zip

因为需要使用web端对文件内容进行修改,在获取到源码后注意要将源码包赋予可写的权限
chmod -R 777 smartdenovo-master
在这里插入图片描述
到这里源码准备工作已经完成

二、源码迁移分析

打开web端默认端口号为8084
https://ip:8084
初次登录需要设置密码,登录后选择源码迁移

在这里插入图片描述
注意源码包一定要存放到指定的目录下才可以被工具扫描到,一切操作完成后,开始进行分析
在这里插入图片描述
在这里扫描完成后开始进行源码的修改i,查看分析报告
在这里插入图片描述
并没有与架构相关的依赖需要迁移
这里通过分析报告可以很直观的看出需要迁移的文件数目和代码行数
查看源码迁移建议
在这里插入图片描述
在需要修改的代码处会给出修改建议
在这里插入图片描述
点击quick fix…进行快速修改
在这里插入图片描述
修改后检查没有错误后修改下一处代码
在这里插入图片描述
在进行以下源码修改时由于avx2neon开源项目存在一部分定向开源函数会出现以下情况
在这里插入图片描述

当这些开源函数在代码中出现时,会出现如所示的建议。此时,用户需要访问github网站
在这里插入图片描述

通过README.md来了解如何获取这些定向开源函数的代码文件。在获取这部分代码头文件后,将其放置到avx2neon.h所在目录内
README.md大致内容如下,接下来安装文档内容放置好头文件
在这里插入图片描述
每个头文件的大致内容大家也可前去了解
这里为了避免麻烦所以我直接将里面包含的头文件全部移入到源码包当中

三、获取头文件

在这里插入图片描述
将头文件全部移入到源码包

avx2neon.h               heap.h                          pbcorr_dbg.h     wtclp.c
avx512intrin.h           hzm_aln.h                       pbh5tof5q.c      wtcns.c
avxintrin.h              immintrin.h                     pomsa.h          wtcorr.c
bit2vec.h                ksw.c                           queue.h          wtcyc.c
bitsvec.h                ksw.h                           README.md        wtdif.c
bitvec.h                 kswx.h                          README-tools.md  wtext.c
block_sparse_array.h     large_seqs.pl                   rename_fa.pl     wtgbo.c
bloom_filter.h           LICENSE.txt                     rename_fq.pl     wtidx.c
counting_bloom_filter.h  linkset.h                       run_dmo.sh       wtidx.h
dagcns.h                 list.h                          run_zmo.sh       wtjnt.c
dbm_index_fa.pl          longest_pacbio_subreads_f5q.pl  seq_n50.pl       wtlay.c
dbm_read_fa.pl           longest_pacbio_subreads.pl      smartdenovo.pl   wtlay.h
dna.h                    Makefile                        sort.h           wtmer.c
emmintrin.h              Makefile.pbh5                   string.h         wtmsa.c
file_reader.c            mem_share.h                     thread.h         wtobt.c
file_reader.h            pairaln.c                       timer.h          wtpre.c
fq2fa.pl                 pbcluster_haplo.pl              typedefs.h       wtsky.c
golomb.h                 pbcluster_upgma.pl              upgma.h          wtzmo.c
hashset.h                pbcorr_dbg.c                    wtbase.h

移入完成后源码包中应该包含的全部文件如上
接下来开始进行MakeFile文件不迁移

在这里插入图片描述
根据以上建议,Makefile文件中需要给CFLAGS变量增加选项内容“-march=armv8-a -fsigned-char”,同时,还需要删除CFLAGS变量中的选项“-mpopcnt”和“-msse3”。修改完成后的代码如下
在这里插入图片描述

四、编译安装

在完成对Makefile和ksw.c的修改后,可以将修改过的整份源代码下载到鲲鹏环境中,执行make clean && make命令,完成编译动作
在这里插入图片描述
Make成功后,可以执行make install命令执行安装,并检查安装结果

在这里插入图片描述
以上表明,smartdenovo已编译安装到鲲鹏平台上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能学习:ResNet神经网络(8)

ResNet是一种非常有效的图像分类识别的模型,可以参考如下的链接 https://blog.csdn.net/qq_45649076/article/details/120494328 ResNet网络由残差(Residual)结构的基本模块构成,每一个基本模块包含几个卷积层。其中,…

【MySQL数据库笔记 - 进阶篇】(五)锁

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:暂定 📝视频地址:黑马程序员 MySQL数据库入门到精通 📣专栏定位:这个专栏我将会整理 B 站黑马程序员的 MySQL…

硬件科普系列之显示篇——LCD与OLED知多少

前言 无论是手机还是电脑,作为机器与人交互最为频繁的硬件设备,显示屏一直是决定用户体验最为关键的因素之一。大家近几年在购买手机的时候,可以发现目前大部分手机都在使用OLED屏幕,那么你有没有思考过为什么各大厂商都在大力推…

jupuyter的背景主题

jupuyter的背景主题一.背景主题安装查看可用主题1.主题安装2. **查看可用主题**3.更换主题,字体等其他设置4.其他命令,还原原本主题二.每个主题的效果1.chesterish2. grade33.gruvboxd4.oceans165.onedork6.solarizedd7.solarizedl一.背景主题安装查看可…

上帝视角看Vue源码整体架构+相关源码问答

前言 这段时间利用课余时间夹杂了很多很多事把 Vue2 源码学习了一遍,但很多都是跟着视频大概过了一遍,也都画了自己的思维导图。但还是对详情的感念模糊不清,故这段时间对源码进行了总结梳理。 本篇文章更合适于已看过 Vue2 源码&#xff0c…

使用NNI对DLASeg剪枝的失败记录

本文希望对CenterNet算法的Backbone暨DLASeg进行剪枝。 剪枝试验涉及3个文件,分别为: DCN可变性卷积dcn_v2.py,因为DLASeg依赖DCN。 #!/usr/bin/env python from __future__ import absolute_import from __future__ import print_functio…

如何在 Windows 10上修复0x000006ba错误

修复0x000006ba错误 可能导致此错误代码的原因已确认的可行的解决办法运行打印机疑难解答重新启动后台打印程序服务清除 PRINTERS 文件夹运行 SFC 和 DISM 扫描启用打印机共享某些 Windows 10 在尝试在 Windows 10 上打印新文档时遇到0x000006ba错误代码。其他用户在尝试使用 W…

【面试题】line-height继承问题

1. line-height为具体数值 当父元素line-height的值为具体数值的时候&#xff0c;例如30px&#xff0c;则子元素的line-height直接继承该数值。 <style>body{font-size: 20px;line-height: 50px;}p{background-color: #ccc;font-size: 16px;} </style><body&g…

类和对象的初步介绍

文章目录面向对象的初步认识什么是面向对象面向对象与面向过程类定义和使用简单认识类类的定义格式随堂练习定义一个学生类类的实例化什么是实例化类和对象的说明this 引用为什么要有this引用什么时this引用this引用的特性对象的构造和初始化构造方法概念特性默认初始化就地初始…

Shell脚本学习指南(三)——文本处理工具

文章目录排序文本行的排序以字段的排序文本块排序sort的效率sort的稳定性sort小结删除重复重新格式化段落计算行数、字数以及字符数打印打印技术的演化其他打印软件提取开头或结尾数行排序文本 含有独立数据记录的文本文恶剪&#xff0c;通常都可以拿来排序。一个可预期的记录…

Vue3 - 组件通信(父传子)

前言 在 Vue3 中&#xff0c;父组件向子组件传参的方法。 与 Vue2 相比&#xff0c;还是有一些区别的。 基础示例 现在我们的需求是&#xff0c;要通过父组件&#xff0c;传递一个标题来让子组件显示。 子组件 Com.vue&#xff1a; <template><div>{{ title }}&l…

大数据工程师必备之数据可视化技术

可视化技术 数据&#xff1a; 偏耀明 7800 高军鹏 8000 代欣 8800 王国庆 20000 ​ 应对现在数据可视化的趋势&#xff0c;越来越多企业需要在很多场景(营销数据、生产数据、用户数据)下使用&#xff0c;可视化图表来展示体现数据&#xff0c;让数据更加直观&#xff0c;数…

tp6使用redis消息队列

尾部写入 for ($i1;$i<1000;$i){Cache::store(redis)->rpush(list,date("Y-m-d H:i:s")."消息{$i}"); }头部读取消息队列并删除 $list Cache::store(redis)->lpop(list); 1、新建个方法运行写入队列 public function hello(){for ($i1;$i<…

C++ Reference: Standard C++ Library reference: Containers: deque: deque: erase

C官网参考链接&#xff1a;https://cplusplus.com/reference/deque/deque/erase/ 公有成员函数 <deque> std::deque::erase C98 iterator erase (iterator position); iterator erase (iterator first, iterator last); C11 iterator erase (const_iterator position )…

Android 后台服务启动Actvity

一、问题背景 相机自动化测试需求&#xff0c;测试apk通过bindService绑定相机apk里面的一个服务&#xff0c;通过AIDL接口的方式向相机apk发送命令&#xff0c;服务接收到命令之后会拉起相机的Activity。原本没有人为干预的情况下是可以拉起这个Activity的&#xff0c;但是拉…

基于PYTHON游乐场服务管理系统的设计与实现

摘要 项目门票是游乐园必不可少的一个部分。在游乐园发展的整个过程中&#xff0c;项目门票担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类管理系统程序也在不断改进。本课题所设计的游乐场服务管理系统&#xff0c;使用Django框架&#xff0c;Python语言进…

如何优雅部署OpenStack私有云I--Kolla

为方便大数据平台与管理工具的研发&#xff0c;在公司成本不额外增加的情况下&#xff0c;从公司仓库里拉了几台下线物理机来做大数据平台的实验环境。但整体物理机性能都偏高&#xff0c;单独安装一个大数据服务&#xff0c;很豪&#xff0c;但是也很浪费。而且主机台数不是很…

优先级队列(堆)——小记

文章目录堆概念堆的创建堆向下调整堆的插入堆的删除堆排序整体代码&#xff08;创建堆&#xff08;向下调整&#xff09;&#xff0c;堆的插入&#xff0c;堆的删除&#xff0c;堆排序&#xff09;TOPKPriorityQueue特性堆 概念 如果有一个关键码的集合Kk0&#xff0c;k1&…

48 基于 jdk9 编译的 jdk8 的字节码报错

前言 呵呵 大概是由于最近的这个 “Apache Log4j被曝存在严重高危险级别远程代码执行漏洞” 昨天晚上 编译了一下 logging-log4j2-log4j-2.15.0-rc2, 项目需要一个 toolchain.xml 的一个配置, 里面需要配置为 jdk9 因此 我的项目配置的 jdk 为 jdk9 然后 idea 里面默认…

【计算机毕业设计】校园二手市场平台+vue源码

一、系统截图&#xff08;需要演示视频可以私聊&#xff09; 摘 要 21世纪的今天&#xff0c;随着社会的不断发展与进步&#xff0c;人们对于信息科学化的认识&#xff0c;已由低层次向高层次发展&#xff0c;由原来的感性认识向理性认识提高&#xff0c;管理工作的重要性已逐…