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


    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
    
    • 1

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

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

    unzip  unzip master.zip
    
    • 1

    然后清理掉压缩包

    rm -rf master.zip
    
    • 1

    因为需要使用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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

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

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

    四、编译安装

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

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

  • 相关阅读:
    JS数组at函数(获取最后一个元素的方法)介绍
    boost.regex正则表达式
    机器人路径规划:基于Q-learning算法的移动机器人路径规划,可以自定义地图,修改起始点,提供MATLAB代码
    Linux--网络基础(概念+协议的了解+OSI七层模型,TCP/IP五层协议,网络数据传输流程)
    鸿蒙开发-UI-动画-组件内转场动画
    Xshell远程连接配置 Ubuntu 18.04.6 + Anaconda + CUDA + Cudnn + Pytorch(GPU+CPU)
    【单目标优化求解】基于matlab蒲公英算法求解单目标优化问题【含Matlab源码 2133期】
    暴力破解ssh/rdp/mysql/smb服务
    谷歌桌面布局修改
    二分查找(闭区间)
  • 原文地址:https://blog.csdn.net/m0_63694520/article/details/127917184