Fortran Coder

查看: 46|回复: 2

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

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
9 点
发表于 2019-1-9 18:14:09 | 显示全部楼层 |阅读模式
代码如下:
http://p.fcode.cn/_VbXZR
编程目的:
求解4对高阶矩阵相乘。使用OpenMP标准将4对高阶矩阵相乘分别放入4个线程中运算,统计运算时间。再去除OpenMP语句,串行计算。比较两者时间,计算加速比。
运行出现的问题:
QQ截图20190109175832.png
请教这个是堆栈溢出还是什么问题?
代码中我设置的矩阵阶数为1000,会出现上述问题,而设置为500,则能够正常运行,并得出我想要的结果(串并行都没问题),而我实际上最终希望能够比较1万阶以上矩阵相乘的计算时间,请问我该怎么处理呢?
QQ截图20190109181021.png
我根据网上写的修改这个空间大小,但是没什么作用,n=1000依旧不行。
编程运行环境:vs2012+ivf2013、win10系统
CPU:AMD Ryzen 5 1500x 4核心8线程
内存:16G



回复

使用道具 举报

2

帖子

1

主题

0

精华

新人

F 币
24 元
贡献
9 点
 楼主| 发表于 2019-1-9 18:39:29 | 显示全部楼层
尴尬,我自己找到原因了,把下面的stack commit stack也调到200000000就可以了,但是还是只能运行到n=2000,n=3000以上就提示内存资源不足。。。
QQ截图20190109183442.png

311

帖子

1

主题

0

精华

宗师

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

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-1-18 11:02

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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