创新实训

2020创新实训

2020-05-30 规划和写申请文档
2020-06-01 完善申请书和进行签名
2020-06-14 开会并配置环境,如何运行

项目文件列表

在这里插入图片描述

如何运行

cmke .
source /home/asc/intel/compilers_and_libraries/linux/bin/compilervars.sh
make

其中第二句是声明intel icpc 和 intel icc 编译器,以便make的时候使用,否则会出错。

然而这样也会出现一个问题,诸如malloc is undefined 等符号未定义问题,原因在开会过程中一直找,从gcc 版本,cmake版本,intel icpc icc编译器等方面入手,但是在开会过程中并没有找到,最后由另一位成员发现,更改gcc版本为较新的7.5,在编译的时候使用新的gcc可以解决这个问题.

以下是成功编译的截图

在这里插入图片描述

在这里插入图片描述

2020-06-20 gcc 通用编译

从工程的角度来讲,一个软件不应该对其它的软件库太过依赖,另外去除软件对特殊类库的依赖也有利于软件的推广何使用。对于我们实现的gwas软件,依赖于intel mkl比较多,而intel mkl 的使用需要安装Intel Parallel Studio,而且这个软件的安装还需要认证激活,如果是学生,还可以进行学生认证使用,但是其它科研工作者使用就并不是那么简单了,而且安装使用激活过程对于非专业人员也是有一定难度的,并且还有一定的经费支出。

综上所述,gwas软件去掉intel数学库无论在工程上还是软件适配性角度来说,都是有必要的。

下面的cmake编译配置说明了,当前的gwas使用的是intel的编译器
在这里插入图片描述

SET(CMAKE_CXX_COMPILER icpc)
SET(CMAKE_C_COMPILER icc)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g -mkl -static-intel -no-intel-extensions -static-libstdc++ -march=native -qopenmp")

这些行声明了c++,c编译器分别是icpc、icc并且编译参数中使用了-mkl -static-intel来添加相关依赖

1.分析依赖库有那些

通过通读代码,发现依赖库主要是在计算部分,如下图:
在这里插入图片描述

#include <mkl.h>
//X2 = Xt * X
cblas_dgemm(CblasColMajor, CblasTrans, CblasNoTrans, M, M, N, 1, X, N, X, N, 0, X2, M);

简单分析可知依赖库是intel mkl 和 BLAS

在这里插入图片描述

//solve(Xt * X)
int inv_success = LAPACKE_dgesv(LAPACK_COL_MAJOR, M
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值