Fortran Coder

查看: 7950|回复: 2
打印 上一主题 下一主题

[求助] 求助一个关于fortran+OpenMP的问题

[复制链接]

3

帖子

2

主题

0

精华

新人

F 币
31 元
贡献
14 点
跳转到指定楼层
楼主
发表于 2019-1-9 18:14:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
代码如下:
http://p.fcode.cn/_VbXZR
编程目的:
求解4对高阶矩阵相乘。使用OpenMP标准将4对高阶矩阵相乘分别放入4个线程中运算,统计运算时间。再去除OpenMP语句,串行计算。比较两者时间,计算加速比。
运行出现的问题:

请教这个是堆栈溢出还是什么问题?
代码中我设置的矩阵阶数为1000,会出现上述问题,而设置为500,则能够正常运行,并得出我想要的结果(串并行都没问题),而我实际上最终希望能够比较1万阶以上矩阵相乘的计算时间,请问我该怎么处理呢?

我根据网上写的修改这个空间大小,但是没什么作用,n=1000依旧不行。
编程运行环境:vs2012+ivf2013、win10系统
CPU:AMD Ryzen 5 1500x 4核心8线程
内存:16G



分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

3

帖子

2

主题

0

精华

新人

F 币
31 元
贡献
14 点
沙发
 楼主| 发表于 2019-1-9 18:39:29 | 只看该作者
尴尬,我自己找到原因了,把下面的stack commit stack也调到200000000就可以了,但是还是只能运行到n=2000,n=3000以上就提示内存资源不足。。。

798

帖子

2

主题

0

精华

大宗师

F 币
3793 元
贡献
2268 点
板凳
发表于 2019-1-10 20:48:57 | 只看该作者
omp代码的内存开销肯定比串行大,出现这种问题,有可能是代码不合理导致内存使用翻倍,也可能是堆栈不合理。堆栈太小会栈溢出,太大会资源不足。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-4-30 03:15

Powered by Tencent X3.4

© 2013-2024 Tencent

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