Fortran Coder

查看: 6209|回复: 3
打印 上一主题 下一主题

[并行] OpenMP并行采用reduction,出现stack overflow问题

[复制链接]

3

帖子

2

主题

0

精华

入门

F 币
122 元
贡献
59 点

规矩勋章

跳转到指定楼层
楼主
发表于 2015-11-9 19:06:50 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
利用OpenMP进行并行运算2个矩阵P与Q的值,并利用reduction进行归约处理;
先尝试了一个简单算例,计算没有问题;但是移至到另外一个大程序中时,出现了stack overflow问题。
以下是简单算例的程序部分:
[Fortran] 纯文本查看 复制代码
    ! 主程序段
    matrix = 0.d0
    vector = 0.d0
    !$omp parallel private(i, tmp_vector) &
    !$omp          reduction(+:matrix, vector)
    !$omp do              
            do i =1, 48
            call gemm(a, b, matrix, 'n', 'n', 1.d0, 1.d0)
            call gemm(a, c, tmp_vector)
            call gemm(b, tmp_vector, vector, 'n', 'n', 1.d0, 1.d0)
            end do
   !$omp end do 
    !$omp end parallel


在上述简单算例中运行正确,但移至到大型程序中出现以下问题:


Stack overflow 1.png (14.84 KB, 下载次数: 242)

Stack overflow 1.png

stack overflow.PNG (4.99 KB, 下载次数: 236)

stack overflow.PNG
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-15 18:19

Powered by Tencent X3.4

© 2013-2024 Tencent

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