回 帖 发 新 帖 刷新版面

主题:ivf调用mkl和lapack

自己曾经想,要是能把ivf用起来。包括他的mkl和集成的lapack,那该多方便啊!很遗憾啊,搜索了很多帖子,包括论坛上的帖子,一直在自己电脑上用,就是没用起来。又看到一篇英文帖子,我小有兴趣将它翻译出来,再对照自己的程序试下,虽然没成功,但是很希望知道问题出在哪里了。
寒假回家之前搞定这个问题!搞不定不回家过年了!
http://bbs.pfan.cn/post-213148.html
这篇帖子有介绍的,按照他说的,没通过!
后来又看到这篇帖子
http://www.programfan.com/club/showtxt.asp?id=374954
希望参与讨论过的同学又顺利用起来的弟兄们,进来踩一下啊!
我安装的是studio 2008+Intel.Visual.Fortran.Composer.XE.2011.5.221.
我看安装文件了,有自带的mkl,mkl里也有lapack。
为了能顺利把mkl和lapack用起来,下面我把后面帖子里的英文翻译过来,请高手支招,看下哪里出问题啊。
英文部分主要就是介绍怎么用mkl,或者说是mkl useguide.
分三部分,第一部分,创建一个新的fortran项目。第二部分:设置Intel MKL Include属性;第三部分:设置library 属性。
第一部分:创建新fortran项目。
1.创建 Visual Fortran 项目
a)打开Visual Studio 2008
b)在主菜单上,选择文件>新建>项目,这时打开一个新项目模板
c)在这个模板上,选择Fortran > Console Application,然后选择Empty Project;最后给新建的项目取名字,比如MKL_PDETTF_D_TRIG_TRANSFORM_BVP
点击确定,完成。
下一步在解决方案资源管理器(Solution Explorer)内完成:
2.对新建的项目添加Intel MKL 例子
a)新建的文件名下面有个Source Files,右键点击,添加现有项,找到Intel MKL examples文件夹,然后在它的子目录下找到你想运行的例子,例如\pdettf\source。选择后缀是.f 或 。f90的例子。点击添加,这时候在Source Files 下面就出现了所选的例子。
看下你所选的例子,有没有用到 use 声明,比如use imsl...如果用到了,还需要下面两步设置:
c)右键点击Header Files文件夹,选择>添加现有项,打开要添加的文件
d)在添加现有项里,找到Intel MKL include目录,选择use声明中出现的header files。点击添加,就关闭了添加现有项菜单,你所选的项相应出现在里面。

下一步调整项目的属性:
3.选择项目名

4.在主菜单上,选择项目->属性,打开属性面板

5.设置Intel MKL Include属性
a)在<project name> 属性页面,选择ConfigurationProperties > Fortran > General,解释下来就是:配置属性>Fortran>General。在右边部分,选择Additional Include Directories,点它右边空白地方,看到 <Edit…>,这就打开了Additional Include Directories页面。
b)在Additional Include Directories页面,写上Intel MKL include目录,引号中部分:"<mkl_directory>\include"。点确定,关闭Additional Include Directories界面。

6.在属性界面,选择Configuration Properties > Fortran > Preprocessor,在界面右边部分,选择Preprocess Source File,选择Yes.推荐这一步是因为有些程序要求预加工。

7.设置library 属性
a)在属性里,选择ConfigurationProperties > Linker > General,在页面右边部分,选择Additional Library Directories >,<edit>,打开Additional Library Directories界面
b)在这个界面上,写上Intel MKL libraries目录,如引号中所示:"<mkl_directory>\<architecture>\lib",<architecture>是{ia32, em64t, ia64}中的一个,表示你计算机的系统,例如"<mkl_directory>\ia32\lib"。
点击确定,关闭Additional Library Directories 界面。
c)选择ConfigurationProperties > Linker > Input,在界面右边,选择Additional Dependencies ,写上所需要的libraries,比如,对ia32系统,写上mkl_c.lib mkl_intel_thread.lib mkl_core.lib libiomp5mt.lib.
这里有点小问题:我怎么知道我需要哪些libraries呢?

8.点击确定,关闭属性界面。

9.有些例子在执行结束之前不会暂停,为了看到Console window上显示的结果,在程序刚好要结束的地方设置断点或者在最后一个end前面加上“pause”。

10.build解决方案,选择Build>Build Solution.

11.运行例子,选择Debug>Start Debugging,打开Console window.

12.在Console window里你会看到运行的结果。如果你在程序中加了“pause”,按Enter来完成运行。如果是设置了断点来暂停执行程序,选择Debug > Continue,这会关闭Console window。

回复列表 (共11个回复)

沙发

我选择了一个不带use的,cgetrsx.f,结果在生成新解决方案的时候就出错了:
cannot open mkl_c.lib。
我都是按照一步一步来的,怎么回事呢?
在摸索下!!

板凳

会不会跟我Library设置有关,C:\Program Files\Intel\ComposerXE-2011\mkl\lib\ia32,这是我系统中找到的目录路径,中间在设置时候<mkl_directory>\ia32\lib,好像ia32和lib顺序有些颠倒啊!!求解决!!

3 楼

不是这问题,改了,还不性

4 楼

我靠,原来是C:\Program Files\Intel\ComposerXE-2011\mkl\lib\ia32文件夹下面没有mkl_c.lib这个屄玩意,娘的,害得我找了好久。应该用哪个代替啊?我把有的贴上来几个大家帮忙看下啊:
mkl_cdft_core,mkl_core,。。难道是第二个?试下

5 楼

需要把C:\Program Files\Intel\ComposerXE-2011\mkl\lib\ia32下面所有的Lib都写入到linker里吗?改了之后又来问题:
无法解析的外部符合,该符合在——MAIN_中被引用。
妈呀,崩溃啊。牙疼

6 楼

出现这个问题的原因跟我Lib库的选择有关吗?

7 楼

子程序不知道在哪里获取,问题找到了,但是怎么解决呢?

8 楼

如果没有子程序,就可以用了。子程序怎么链接到呢?

9 楼

妈的,逼我删除Intel.Visual.Fortran.Composer.XE.2011.5 用ivf11.0xx啊

10 楼

你是试过ivf11能够连接, 12(XE)不可以?
其实那些设置过程在编译器文档里面有说明, 教你怎么去设置然后调用MKL的. 不同版本有可能策略会稍微改变.

我来回复

您尚未登录,请登录后再回复。点此登录或注册