Linux下Intel编译器oneAPI安装和链接MKL库编译
Linux下安装oneAPI
很多时候再Windows下使用VStudio+ivf+mkl进行编译的程序,在Linux下使用会遇到一些问题,这是因为linux下默认的gcc、g++还
Linux下Intel编译器oneAPI安装和链接MKL库编译 Linux下安装oneAPI 很多时候再Windows下使用VStudio+ivf+mkl进行编译的程序,在Linux下使用会遇到一些问题,这是因为linux下默认的gcc、g++还有gfortran都是开源编译器,与Intel的编译器icc、icpc和ifort所编译的方式不同,因此采用VStudio+ivf+mkl库所写的程序会在linux下无法直接编译,特别是程序中使用了MKL的相关函数情况下,就更需要安装oneAPI,安装教程参考:Linux下安装Intel oneAPI. 具体操作方式如下: 下载Toolkit 访问Intel官方网站,搜索toolkit,或者点击 访问,在该页面下方有不同的toolkit,注意不支持Fortran77. 我们主要采用的是Base toolkit和HPC toolkit,其中如上图所示,不同的包里面有不同的工具,Base主要包含一些数学库,HPC包含C/C++和Fortran的编译器。 下载离线安装包 点击上述的Download,下载库文件,官方推荐下载离线目录,并且还提供下载教程 Base toolkit离线安装包大概有3G,HPC toolkit离线安装包大概有1G. 开始安装 下载完成之后,开始安装,首先按照官方教程安装Base toolkit
输入之后会弹出图形界面,按照图形界面的指示进行安装即可,默认安装路径是
同样的,HPC toolkit的安装方式也一样
初始化环境 上述安装完成之后,Intel的oneapi环境并没有启动,此时输入icc、icpc或者ifort都弹出没有该命令,因此需要初始化oneAPI环境,采用命令
此时终端弹出初始化输出结果 此时再在终端输入
即可看到icc所对应的版本,表明在该终端下,oneapi环境已经启动。 也可以将初始化命令放到.bashrc文件中,这样每一次启动终端,就会自动初始化环境
但是需要注意,oneapi中带有Intel python环境,每次初始化用,之前安装的anaconda环境会被自动取代,如果初始化之后输入conda init 则.bashrc文件中conda环境路径也会给成Intel环境的路径,注意备份好.bashrc文件,因此本人目前还是在终端输入指令启动环境 可能遇到的问题 (来自参考链接) 一般来说运行安装脚本几十秒后即可启动安装界面。若有读者运行安装脚本超过3 min仍无反应,屏幕上只有Extract xxxxxxxx completed!字样,而未切换至安装界面,那么可以按键盘组合键Ctrl+C中断安装。然后改用完全静默安装模式
在安装MKL库时若有同样问题,可同样执行
这样也是默认安装进/opt/intel/。 编译问题 链接MKL库 如上所述,当采用MKL编写程序时,在编译时,编译器必须采用icc( C )、icpc(C++)、ifort(fortran),在编译时,需要给定指令-qmkl,进行链接mkl库编译,例如
Fortran的双精度编译 在采用ifort编译时,Intel的Fortran编译器默认采用的是单精度编译linux编译器,例如程序中的real,默认给定的是单精度编译,一次需要加上opt控制指令进行双精度编译,如
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |