使用 !$OMP SECTIONS 来分配不同到线程执行不同的任务
代码如下:
program main
use omp_lib
implicit none
integer :: ii,jj,kk
!$OMP PARALLEL
!$OMP SECTIONS
!$OMP SECTION
do ii=1,10
write(*,*) 'ii=',ii,OMP_get_thread_num()
end do
!$OMP SECTION
do jj=1,10
write(*,*) 'jj=',jj,OMP_get_thread_num()
end do
!$OMP SECTION
do kk=1,10
write(*,*) 'kk=',kk,OMP_get_thread_num()
end do
!$OMP END SECTIONS
!$OMP END PARALLEL
end program main
结果:
jj= 1 2
ii= 1 1
kk= 1 0
jj= 2 2
ii= 2 1
kk= 2 0
jj= 3 2
ii= 3 1
kk= 3 0
jj= 4 2
ii= 4 1
kk=