Fortran Coder

查看: 10781|回复: 6

[编译器] 关于特大数组的编译运行问题

[复制链接]

8

帖子

2

主题

0

精华

入门

F 币
65 元
贡献
28 点
发表于 2016-7-24 21:22:52 | 显示全部楼层 |阅读模式
楼主的电脑是32G内存,64位系统,但是在VS2012运行IVF的时候,经常提示内存不足或者出错。这里已经是经过稀疏矩阵存储处理过(有2000万的非零元素),有大神能够帮忙解答吗,这里感激不尽!

1948

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1298 元
贡献
547 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2016-7-24 22:13:57 | 显示全部楼层
详解本群官网文章: http://memory.w.fcode.cn

8

帖子

2

主题

0

精华

入门

F 币
65 元
贡献
28 点
 楼主| 发表于 2016-7-25 09:14:29 | 显示全部楼层
我看了这个帖子,还没有得到我想要的答案,难道就是说我不能够充分利用32G内存吗?

1948

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1298 元
贡献
547 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2016-7-25 09:28:03 | 显示全部楼层
你再确认一下你使用的编译器是否是64位的编译器?
给一张错误提示的截图出来?

有必要可以用64位的linux上跑跑试试看?
此外,能否更合理的使用内存?例如波前法。

8

帖子

2

主题

0

精华

入门

F 币
65 元
贡献
28 点
 楼主| 发表于 2016-7-25 10:28:33 | 显示全部楼层
本帖最后由 glodve 于 2016-7-25 12:52 编辑

附上我的一些错误提示。还有我不是很确定怎么设置64位编辑器。是选定图上的X64吗?
还有因为是做科学计算的,目前就想着把程序跑起来,所以暂时不去做内存存储优化。对这方面的了解不是太多也有难度。

捕获.JPG
捕获3.JPG
还有提示错误就是提示insufficient virtual memory。

另外一个问题
程序中使用了qsort函数。当我选择x64而不是win32时会出现错误
捕获4.JPG
捕获2.JPG
捕获1.JPG

谢谢!





1948

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1298 元
贡献
547 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2016-7-25 19:42:47 | 显示全部楼层
选择了 x64 就是64位的。也可以从内存地址 0x000000013F612229 这种里看出来,0x 后面有16个十六进制数,就是64位的。

存储空间不足,就是内存不足了。64位只是可用的寻址空间更大, 但依然是有限的。

映像大小太大,是静态数组太大导致的。请用动态分配数组试试。

综合来看,你的数组还是太大了。建议从算法上优化,减少内存的需求量。

8

帖子

2

主题

0

精华

入门

F 币
65 元
贡献
28 点
 楼主| 发表于 2016-7-26 15:04:24 | 显示全部楼层
fcode 发表于 2016-7-25 19:42
选择了 x64 就是64位的。也可以从内存地址 0x000000013F612229 这种里看出来,0x 后面有16个十六进制数,就 ...

好的,谢谢指教。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-3-28 23:19

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表