语言, Fortran专题

Visual Studio和Fortran的下载以及设置MKL环境

一、软件下载和安装

在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 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)。

更多链接:

8,366 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

4 thoughts on “Visual Studio和Fortran的下载以及设置MKL环境”

  1. 博主你好我是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 问题是路径没问题啊,依赖像貌似都没问题啊

    1. 一个简单的方法是在program前面加个语句:include 'mkl_dfti.f90',然后再:use mkl_dfti。

  2. 博主您好,按照你的步骤操作了之后,调用blas内的函数,比如dot,终端还是显示:There is no matching specific function for this generic function reference. [DOT]。这是啥情况呢?

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code