什么时候!$ OMP PARALLEL END必要吗?

时间:2016-03-07 20:33:42

标签: parallel-processing fortran openmp

OpenMP规范说 [!$ OMP PARALLEL END DO] 是可选的,如果不存在,编译器会默认采用它。我可以隐含地假设它的正确性吗?例如

版本1 :(没有结束并行)

do i = 1, N
!$OMP PARALLEL DO DEFAULT(SHARED)
   do j = xadj(i), xadj(i+1) - 1
      call residual(j, ...)
   end do
end do 

版本2 :(结束并行执行)

do i = 1, N
!$OMP PARALLEL DO DEFAULT(SHARED)
   do j = xadj(i), xadj(i+1) - 1
      call residual(j, ...)
   end do
!$OMP END PARALLEL DO
end do

虽然规范说它是可选的(安全的)在实践中有多安全(对于上面的例子)?

0 个答案:

没有答案