Fortran Coder

查看: 200|回复: 6

[并行] 关于大数组openmp并行的问题

[复制链接]

12

帖子

4

主题

0

精华

入门

F 币
69 元
贡献
35 点
发表于 2019-4-7 22:04:39 | 显示全部楼层 |阅读模式
向各位大神求助,我现在想要并行做一些矩阵的计算,发现只要矩阵稍微一大就无法运行了,不知道有人遇到过这种情况吗,该如何解决呢?这个代码很简单,串行完全没问题,而并行的时候,矩阵规模很小时没有问题,规模一大比如现在的2000就无法运行了。
      program main
      use omp_lib
      integer::i,j
      integer,parameter::nec0=2000
      common/matr/ an(nec0,nec0)

      write(6,*) 'hello word!'
      !$OMP PARALLEL PRIVATE(i,j)
      !$OMP DO
      do i=1,nec0
        do j=1,nec0
            an(i,j)=float(i+j)
        enddo
      enddo
      !$OMP END DO
      !$OMP END PARALLEL

      open(3,file='an.txt',status='unknown')
      do i=1,nec0
        write(3,*) (an(i,j),j=1,nec0)
      enddo
      close(3)

      stop
      end

回复

使用道具 举报

12

帖子

4

主题

0

精华

入门

F 币
69 元
贡献
35 点
 楼主| 发表于 2019-4-7 22:34:11 | 显示全部楼层
[Fortran] 纯文本查看 复制代码
      program main
      use omp_lib
      integer::i,j
      integer,parameter::nec0=2000
      common/matr/ an(nec0,nec0)
      
      write(6,*) 'hello word!'
      !$OMP PARALLEL PRIVATE(i,j)
      !$OMP DO
      do i=1,nec0
        do j=1,nec0
            an(i,j)=float(i+j)
        enddo
      enddo
      !$OMP END DO
      !$OMP END PARALLEL
      
      open(3,file='an.txt',status='unknown')
      do i=1,nec0
        write(3,*) (an(i,j),j=1,nec0)
      enddo
      close(3)
      
      stop
      end

342

帖子

1

主题

0

精华

宗师

F 币
1827 元
贡献
1203 点
发表于 2019-4-8 12:06:30 | 显示全部楼层
给错误提示,对于找错来说,这是最重要的,比你的代码更重要。
猜测可能是堆栈问题。

12

帖子

4

主题

0

精华

入门

F 币
69 元
贡献
35 点
 楼主| 发表于 2019-4-8 12:43:37 | 显示全部楼层
li913 发表于 2019-4-8 12:06
给错误提示,对于找错来说,这是最重要的,比你的代码更重要。
猜测可能是堆栈问题。 ...

会弹出对话框,test.exe已停止工作

342

帖子

1

主题

0

精华

宗师

F 币
1827 元
贡献
1203 点
发表于 2019-4-9 17:59:40 | 显示全部楼层
我这里运行没问题。你把整个项目打包上传。

12

帖子

4

主题

0

精华

入门

F 币
69 元
贡献
35 点
 楼主| 发表于 2019-4-11 20:18:47 | 显示全部楼层
li913 发表于 2019-4-9 17:59
我这里运行没问题。你把整个项目打包上传。

这个在vs里运行没问题,在simply fortran里运行会出现上述问题,是哪里需要设置吗?

342

帖子

1

主题

0

精华

宗师

F 币
1827 元
贡献
1203 点
发表于 2019-4-12 10:58:58 | 显示全部楼层
不要用小于10的通道号;屏幕输出用星号,不用6.
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2019-6-21 01:01

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

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