【发布时间】:2015-08-21 11:56:24
【问题描述】:
我无法将 openmp 应用于 Fortran 中的嵌套循环,如下所示:
!$omp parallel do default(none) private(irow,mm,iparm,jrow) shared(nsrow,nparm,zvec,bvec,brx,zdense)
do irow = 2, nsrow
mm = irow -1
do iparm = 1, nparm
do jrow = 1, mm
zvec(jrow) = zdense( ijdense(jrow,irow,nsrow) )
end do
bvec(iparm) = ddot( mm, zvec, 1, brx(:,iparm), 1)
end do
brx(irow,:) = (brx(irow,:)-bvec)/zdense(ijdense(irow,irow,nsrow))
end do
!$omp end parallel do
当我将串行与 openmp 版本进行比较时,最后一个给出了奇怪的结果。你知道为什么或者可以指出一个关于嵌套循环和openmp的好教程吗?提前谢谢你
【问题讨论】:
-
以下任何答案是否有助于解决您的问题?如果它有帮助,请接受它以帮助有类似问题的人。如果没有帮助,请告诉我,以便我删除它,以免人们浪费时间查看它。