求助一个关于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
:-L尴尬,我自己找到原因了,把下面的stack commit stack也调到200000000就可以了,但是还是只能运行到n=2000,n=3000以上就提示内存资源不足。。。
omp代码的内存开销肯定比串行大,出现这种问题,有可能是代码不合理导致内存使用翻倍,也可能是堆栈不合理。堆栈太小会栈溢出,太大会资源不足。
页:
[1]