Fortran Coder

标题: 求助一个关于fortran+OpenMP的问题 [打印本页]

作者: 白夜IX    时间: 2019-1-9 18:14
标题: 求助一个关于fortran+OpenMP的问题
代码如下:
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




作者: 白夜IX    时间: 2019-1-9 18:39
尴尬,我自己找到原因了,把下面的stack commit stack也调到200000000就可以了,但是还是只能运行到n=2000,n=3000以上就提示内存资源不足。。。


作者: li913    时间: 2019-1-10 20:48
omp代码的内存开销肯定比串行大,出现这种问题,有可能是代码不合理导致内存使用翻倍,也可能是堆栈不合理。堆栈太小会栈溢出,太大会资源不足。




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