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已编译安装到鲲鹏平台上