Fortran Coder

查看: 11019|回复: 8
打印 上一主题 下一主题

[求助] 超大规模科学计算中的动态数组无法释放

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
11 点
跳转到指定楼层
楼主
发表于 2015-12-13 21:28:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,我在用FORTRAN进行上亿未知量的超大规模科学计算时,遇到了动态数组无法deallocate的情况。关于这个错误我已经debug一个多月了,我确定没有犯任何低级错误,比如数组未开辟或者已经释放过这种错误。另外,每次执行同一程序时,错误点的定位并不确定,而是随机的,但出问题的地方都是某个动态数组无法被释放。请问各位大虾,有人遇到过类似的情况吗?若能指点一二,在下感激不尽!!!
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

2015

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1572 元
贡献
676 点

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

沙发
发表于 2015-12-13 22:27:10 | 只看该作者
并非所有的量都必须放在内存里,除了内存你还有硬盘。学会用什么拿什么,别把洗衣机扛在肩上。

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

板凳
发表于 2015-12-14 06:41:37 来自移动端 | 只看该作者
请贴一段可以复现问题的最短代码,否则无从谈起

3

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
11 点
地板
 楼主| 发表于 2015-12-14 09:03:39 | 只看该作者
pasuka 发表于 2015-12-14 06:41
请贴一段可以复现问题的最短代码,否则无从谈起

感谢回答!我也知道不贴代码很难复现……但这个真的不现实,代码过于庞大,而且涉密……我只能是问问各位前辈以前有没有遇到过类似的共性的问题……

490

帖子

4

主题

0

精华

大宗师

F 币
3298 元
贡献
1948 点

水王勋章元老勋章热心勋章

5#
发表于 2015-12-14 10:01:08 来自移动端 | 只看该作者
爱莫能助,如果涉及openmp或者mpi的话,还不如去国外论坛问问

2015

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1572 元
贡献
676 点

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

6#
发表于 2015-12-14 10:45:05 | 只看该作者
虽然我没遇到过,但是我建议你从算法入手降低对内存的需求。

所有计算机的系统,基本上都有一个通病,那就是在系统开销快要达到系统容限的时候,会出莫名其妙的问题。

136

帖子

3

主题

0

精华

版主

F 币
1964 元
贡献
1677 点

帅哥勋章管理勋章爱心勋章新人勋章热心勋章元老勋章

7#
发表于 2015-12-14 14:38:24 | 只看该作者
本帖最后由 aliouying 于 2015-12-14 14:41 编辑

我可以提一个简单想法:

1、复制一份完整程序,备份
2、删除其中除了allocate和deallocate以及所有函数的参数,
3、更改所有函数名和变量名,防止泄密
4、调试,正对特定的问题,计算问题大小,赋值allocate的数组大小

3

帖子

1

主题

0

精华

新人

F 币
22 元
贡献
11 点
8#
 楼主| 发表于 2015-12-15 18:38:27 | 只看该作者
aliouying 发表于 2015-12-14 14:38
我可以提一个简单想法:

1、复制一份完整程序,备份

谢谢,我找您的意见试试,但愿能行

35

帖子

2

主题

1

精华

专家

超子

F 币
565 元
贡献
196 点

规矩勋章

QQ
9#
发表于 2016-1-15 16:14:36 | 只看该作者
这个动态数组是不是过大了那,能不能分成几个小的动态数组那~~
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-11-5 05:54

Powered by Tencent X3.4

© 2013-2024 Tencent

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