24小时热门版块排行榜    

CyRhmU.jpeg
查看: 531  |  回复: 0
【悬赏金币】回答本帖问题,作者fo3mt2将赠送您 20 个金币

fo3mt2

金虫 (小有名气)

[求助] 三层嵌套循环的并行问题

大家好,

我想向大家请教一个问题。对于三层嵌套循环的fortran程序要如何用mpi技术并行呢?比如下面这段代码,变量arr是一个三维数组,我想对它的每一维度都分别各自并行,并将该数组里的每个元素,通过计算后加和,最后收集到collect变量里。

能否请大家帮我修改下这段代码,把它变成mpi并行的程序呢?谢谢啦。

!example code
program example
implicit none
integer :: i, j, k
double precision :: arr(100,1000,700), collect

do i = 1, 100, 1
       do j = 1, 1000, 1
             do k = 1, 700, 1
                   arr(i,j,k) = dble(i + j + k)
             end do
       end do
end do

collect = 0.0d0

!this is the part that i want to parallelize
do i = 1, 100, 1
       do j = 1, 1000, 1
             do k = 1, 700, 1
                   collect = collect + arr(i,j,k) * dble(i+j-k)
             end do
       end do
end do

write (unit=*, fmt=*) collect
!

stop
end program example
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 fo3mt2 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见