一、软件下载和安装
在Windows系统下,需要先安装Visual Studio,再安装Intel oneAPI。如果是在Linux系统下,只需要安装Intel oneAPI即可,参考这篇:在Linux系统下Fortran和MKL环境的安装和设置。
在Windows系统下的安装步骤如下:
1. Visual Studio下载:https://visualstudio.microsoft.com/zh-hans/downloads/,安装组件选择”使用C++的桌面开发“。可以默认安装,也可以选择性安装,参考后面的截图。
2. Fortran下载步骤如下:
- Intel免费开发工具:https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html。
- 首先下载Intel oneAPI Base Toolkit,安装。
- 其次下载Intel oneAPI HPC Toolkit,安装。
如果是联网环境,Intel oneAPI推荐下载online安装包,而非offline安装包。这样在筛选组件后,下载的文件大小会小很多。
组件可以按默认安装,也可以选择性安装,不够的可以后续再添加。以下是个人挑选的组件,满足个人需求,仅供参考:
(1)Visual Studio中组件选择:
(2)oneAPI Base Toolkit中组件选择:
(3)Intel® oneAPI HPC Toolkit中组件选择:
二、MKL环境设置
如果安装了Visual Studio和Fortran,但调用不了MKL库,那么在Visual Studio中设置:
1. 菜单栏 项目 —>‘工程文件名’属性 —> 配置属性 —> Fortran —> Libraries —> Use Intel Math Kernal Library 选中 Parallel,以及 Use Common Windows Libraries 选中 Yes。
2. 菜单栏 项目 —> ‘工程文件名’属性 —> 配置属性 —> Linker —> Input —> Additional Dependencies —> 填入 mkl_blas95_lp64.lib mkl_lapack95_lp64.lib
对于有的 MKL 函数,以上的 Additional Dependencies 可能需要填写更多,详细的连接设置可参考官方的这个链接:https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html。依赖的相关文件大概是在这里 C:\Program Files (x86)\Intel\oneAPI\mkl\2022.0.3\lib\intel64。
如果要使用到OpenMP并行,还需要设置:菜单栏 项目 —> ‘工程文件名’属性 —> 配置属性 —> Fortran —> Language —> Process OpenMP Directives 选中 Generate Parallel Code (/Qopenmp)。
更多链接:
- 目前Intel Parallel Studio XE已经下架,无法更新序列号。替代是Intel oneAPI,可直接免费下载安装,不需要序列号。消息可参考:Trial license of intel parallel studio xe. - Intel Community。
- 开发工具:https://software.intel.com/content/www/cn/zh/develop/tools.html,Intel免费开发工具在底部的”快速访问“中”学术、研究、开源的免费工具“。
- Intel账户注册:https://www.intel.com/content/www/us/en/forms/basic-intel-registration.html。
- Intel登录系统后台:https://registrationcenter.intel.com/en/products/。
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】
博主你好我是vs2022,我已经配置好了mlk库。
program main
use lapack95
implicit none
real*8 :: a(4,4)=(/ 1.0,3.2,5.0,7.9,2.,4.3,6.,8.,9.4,10.,11.,12.,2.,5.,6.,9. /)
real*8 :: wr(4),wi(4),vr(4,4),vl(4,4) !
call geev(a,wr,wi,vl,vr)
end program main该程序成功运行。
但我用program main
use mkl_dfti
implicit none
integer, parameter :: N = 8
complex*16 x(N)
type(DFTI_DESCRIPTOR), pointer :: my_desc_handle
。。。。的时候就会出现 error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MKL_DFTI] E:\vscode\rungekuta\Console7\Source1.f90 2 问题是路径没问题啊,依赖像貌似都没问题啊
一个简单的方法是在program前面加个语句:include 'mkl_dfti.f90',然后再:use mkl_dfti。
博主您好,按照你的步骤操作了之后,调用blas内的函数,比如dot,终端还是显示:There is no matching specific function for this generic function reference. [DOT]。这是啥情况呢?
头部说明要有,比如use blas95。参考这篇:Fortran常用语句。如果这样还是不行,我也不清楚如何处理。