Fortran Coder

标题: intel visual fortran如何调用超过2g内存 [打印本页]

作者: monkey    时间: 2015-9-4 13:22
标题: intel visual fortran如何调用超过2g内存
最近想做一个CFD的大型计算,需要单进程超过2G,在32位系统和powerstation4的基础上几天都没有突破,就重新拿个电脑,装了win7 64位的系统,然后安装VS2012+INTEL VISUAL FORTRAN2013 SP1版本,单发现还是单进程不容许超过2G,请问应如何设置啊?

错误提示里面有个use heap instead(见附图),百度了一下也没有找到。。请各位高手指点一二。。。。

QQ图片20150904125423.jpg (112.94 KB, 下载次数: 561)

QQ图片20150904125423.jpg

作者: fcode    时间: 2015-9-4 14:00
动态数组可以解决
作者: monkey    时间: 2015-9-4 19:44
谢谢,我不想改代码了。。。有没有好的办法??
作者: 百事可乐    时间: 2015-9-5 08:14
试试看链接的时候增加  /LARGEADDRESSAWARE
如果再不行,那就只能改代码了。
作者: monkey    时间: 2015-9-5 11:09
百事可乐 发表于 2015-9-5 08:14
试试看链接的时候增加  /LARGEADDRESSAWARE
如果再不行,那就只能改代码了。

请说详细些,链接时候增加,怎么操作?是重新安装一下出现的选项吗?
作者: fcode    时间: 2015-9-5 11:13
在 VS 环境下,设置工程选项。如图:

QQ截图20150905111303.jpg (31.54 KB, 下载次数: 480)

QQ截图20150905111303.jpg

作者: monkey    时间: 2015-9-5 11:54
我没有找到这个啊,请问上一级菜单选什么?我的2012没有“工程”啊?
作者: vvt    时间: 2015-9-5 12:15
工程属性对vs非常重要。玩开发环境不知道工程属性就别玩了。试试在解决方案管理器对应的工程上面右键,属性
作者: monkey    时间: 2015-9-5 12:48
vvt 发表于 2015-9-5 12:15
工程属性对vs非常重要。玩开发环境不知道工程属性就别玩了。试试在解决方案管理器对应的工程上面右键,属性 ...

以前一直用powerstation4,这次内存问题必须要64位IVF,之前对vs一无所知。。。见笑了。。还是没有找到,见图

IMG_20150905_124535.jpg (384.66 KB, 下载次数: 470)

IMG_20150905_124535.jpg

IMG_20150905_124448.jpg (402.08 KB, 下载次数: 485)

IMG_20150905_124448.jpg

作者: vvt    时间: 2015-9-5 12:50
请先打开你的工程(解决方案),不然怎么设置它的属性?
作者: monkey    时间: 2015-9-5 14:14
vvt 发表于 2015-9-5 12:50
请先打开你的工程(解决方案),不然怎么设置它的属性?

按照你的说明,找到了选项并设置,可惜还是那个错误信息,很奇怪,明明设置了支持大于2G的!!IVF支持64位,是不是有32和64的版本啊,还是需要怎么设置才能支持64位?

作者: vvt    时间: 2015-9-5 15:22
那你还是改代码,弄成动态数组吧
作者: monkey    时间: 2015-9-5 17:57
vvt 发表于 2015-9-5 15:22
那你还是改代码,弄成动态数组吧

谢谢指点!今天下午把VS2012+IVF2013全部删去,改成VS2010+IVF2011的搭配,还是同样的问题,假期三天都耗在这个问题上了,呵呵。。。很纳闷,这个问题应该简单啊,让他支持64位自然就突破内存限制了,而软件也都兼容32,64的却这样,,,

作者: vvt    时间: 2015-9-5 19:59
你要换编译器,也应该换一个品牌的试试看。
换同一个品牌的不同版本,更何况是更早期的版本,这个思维太有问题了。

错误提示上已经说了。静态数组不允许这么大,请用动态数组(Heap)代替。

作者: xiaoswjp    时间: 2015-9-18 12:08
这个涉及到平台,Windows下VS集成的无论是32还是64,最大只支持2G(mac其它平台),这个没有办法,改编译选项也不行;最好只能弄成动态数组了
作者: xiaoswjp    时间: 2015-9-18 12:12
不好意思,没看到编译器选项可以linker-system-有enable large address项,可以试试
作者: xiaoswjp    时间: 2015-9-18 12:13
再把stack的数值改大一些,不行的话就只能动态数组了
作者: monkey    时间: 2015-9-19 11:29
谢谢,stack修改了也不行,放弃了
作者: necrohan    时间: 2015-11-26 23:37
monkey 发表于 2015-9-5 12:48
以前一直用powerstation4,这次内存问题必须要64位IVF,之前对vs一无所知。。。见笑了。。还是没有找到, ...

楼主你要学习下怎么建立工程才行,估计你是双击.F文件直接编译满地扔.obj的那类人(女生居多)。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2