在Win下安装Visual Studio和Parallel Studio XE

时间:2022-07-22
本文章向大家介绍在Win下安装Visual Studio和Parallel Studio XE,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

使用Visual Studio搭配Parallel Studio进行Fortran编程有个好处是调试方便,数组可以直接可视化,不用外加write之类的语句。设置断点后,调试到达断点时,鼠标置于数组上即可显示其内容。示例如下:

本文将展示如何在Windows系统里安装最新版的两款软件,以及如何调用MKL库。注意Visual Studio是微软的软件,现有社区版(免费);而Parallel Studio是Intel旗下的,学术版免费。

安装Visual Studio Community 2019

在官网

https://visualstudio.microsoft.com

下载Community2019,有多处下载链接,直接点击“免费Visual Studio”亦可。英文网页对应“Free Visual Studio”,网页语言可下拉网页至底部,在左下角更改。

这是一个轻量的交互式安装程序,需联网实时下载组件,安装跟着提示走即可。注意可以更改安装路径等。安装语言建议勾选中文和英文,以便日后可以切换软件界面的语言。安装时间可能长达二、三十分钟,中途不建议点暂停或取消。该安装程序在安装完之后,若再运行则有“修复”和“修改”功能,可以再添加组件或重置环境。

如果勾选“使用C++的桌面开发”,即可满足常规C++编程需求。我们的目标是Fortran且带MKL库,这里面并没有。需要接着安装parallel studio。

安装Intel Parallel Studio XE 2020

1. 下载压缩包

官网提供Linux、Windows和macOS三种操作系统下的安装包,学生/科研人员可使用edu邮箱免费获取,先在

https://software.intel.com/en-us/parallel-studio-xe/choose-download

页面选择身份(学生)、自己的操作系统。本文以Windows版为例,可直接登官网

https://registrationcenter.intel.com/en/forms/?productid=2871

将四项信息全打勾。该网站有时较卡,若页面上Accept键没有浮起、无法点击,可尝试去掉一个勾再勾上。填写对应的信息(使用edu邮箱),下拉,打勾,点击Submit。几分钟内官方会将序列号发送至你的edu邮箱。

点击Submit后页面会跳转至Intel账号登录,如果没有Intel账号可以先去

https://www.intel.com/content/www/us/en/forms/basic-intel-registration.html

注册,回来再填。注册账号时需填写edu邮箱。然后登录邮箱点击收到的激活链接。成功登录Intel账号后,页面会显示序列号及版本(最好将序列号复制留存)。

选择Customizable Package会下载小安装包,安装时必须联网再下载其他组件(要求网络好)。若选择Full Package则下载完整安装包,安装时无需再联网下载。各有优劣。笔者推荐下载Full Package,可以直接用浏览器下载(适合网络好),也可以在“Full Package”上点鼠标右键,复制链接地址,然后到百度网盘里新建“离线下载”,粘贴链接,秒存进自己的网盘。再从网盘上下载到本地电脑。建议预留一晚的时间下载压缩包。

当然,也可不通过官网,直接到网上找靠谱的来源(别人事先下好了),大概率连许可证(License)文件都有提供,省时省事省心。比如到论坛http://bbs.keinsci.com上搜“parallel studio”。

2. 安装

下载下来的文件是

parallel_studio_xe_2020_cluster_edition_setup.exe

双击之,会要求指定解压缩目录,可能需要几分钟来解压缩,时间长短取决于电脑配置。接着设置安装目录和安装的组件,示例如下图

现在一般用不到32位的库,可以不选。C++编译器,Fortran编译器,MKL数学库以及多线程相关的库,强烈推荐安装(如图所示,其他的可根据自己的情况勾选,选太多占硬盘)。在经过几个不重要的“同意”或“Next”之后,到了验证序列号/许可证文件的时候,如下图

若想用序列号激活,可将之前留存的序列号填上,这需联网验证;若想使用许可证文件离线激活,可去官网

https://registrationcenter.intel.com

下载许可证文件(注意序列号与许可证文件严格一一对应),然后点击Choose alternative activation,选择License File Activation。许可证文件激活的另一个好处是,可以不用官方的许可证文件,而使用上述提到的“提供的”许可证文件,其时效远长于电脑寿命,不必担心过期。

注意!!!笔者强烈推荐大家使用正版软件,请勿效仿笔者。

值得注意的是,parallel studio会自动检测Visual Studio的版本并集成进去。若点击Customize可以看到识别出了已装好的Visual Studio 2019:

最后点击Install。安装完成后,启动Visual Studio,可发现多出了Fortran语言的选项。

默认的Fortran编译器可能是Win32/x86的,可以自己新建一个,选择x64。(下图是新建完后的)

这里介绍四个常用快捷键:

F5 调试

F9 设置/取消断点

Ctrl+F7 仅编译

Ctrl+F5 编译、链接及运行

MKL库的调用

官方Fortran编译器文档(2000多页),MKL文档(3000多页MKL子程序详细参数说明,必备利器)等可分别在

https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference
https://software.intel.com/en-us/mkl-developer-reference-fortran

等网站上点击Download PDF下载,也有在线版直接阅读。有哪些系统自带函数、MKL库函数一查便知。官方还提供很多其他文档,就不一一介绍了。如果想调用MKL库函数,有两种办法,一种是使用传统F77接口,代码示例:

program mkl_test
 implicit none
 integer :: i
 integer, parameter :: k = 3
 real(kind=8) :: a(k,k), b(k,k), c(k,k)
 a = 0.0d0
 forall(i=1:k) a(i,i) = 1.0d0
 b = a
 c = 0.0d0
 call dgemm('N', 'N', k,k,k, 1.0d0, a,k, b,k, 0.0d0, c,k)

 do i = 1, k, 1
  write(*,'(A2,I3,A,F10.6)') 'i=', i, 'c(i,i)=', c(i,i)
 end do
 stop
end program mkl_test

然后在项目 -> 属性 -> Fortran -> Libraries里选择MKL库即可,如下图:

另一种办法是使用新式的Fortran 95接口,参数少,使用更方便。代码示例如下:

program mkl_test
 use blas95
 use f95_precision
 implicit none
 integer :: i
 integer, parameter :: k = 3
 real(kind=8) :: a(k,k), b(k,k), c(k,k)
 a = 0.0d0
 forall(i=1:k) a(i,i) = 1.0d0
 b = a
 c = 0.0d0
 call gemm(a,b,c)

 do i = 1, k, 1
  write(*,'(A2,I3,A,F10.6)') 'i=', i, 'c(i,i)=', c(i,i)
 end do
 stop
end program mkl_test

要使用这类接口,除了选择上述MKL库外,要在代码里加上use语句,另外还要在Linker -> Input里填上mkl_blas95_lp64.lib(因为gemm子程序属于BLAS库,这在MKL手册里可以查到),然后才能编译并执行。以后可能用到的其他库(如LAPACK)都在parallel studio的库目录里,比如笔者的库目录是

D:Program FilesIntelSWToolsparallel_studio_xe_2020.0.075compilers_and_libraries_2020windowsmkllibintel64_win

当然,存在其他更为复杂的设置/调用方式,笔者没时间一一尝试,只列出了尝试过的、最简单的一种。