У меня есть код Fortran. Код содержит две петли. Я хочу распараллелить ТОЛЬКО внутренний цикл. Вот мой код:openmp parallelize for inner loop
!$OMP PARALLEL PRIVATE(i,j)
do i=1, N
!$OMP PARALLEL DO
do j=1, M
! do some calculations
end do
!$OMP END PARALLEL DO
end do
!$OMP END PARALLEL
Правильно ли распараллеливание? Я не уверен, нужно ли сначала положить !$OMP PARALLEL PRIVATE(i,j)
? Должен ли я опустить его и объявить только PRIVATE(i)
перед вторым циклом? В любом случае, я немного смущен, объясните, что такое правильное поведение.
Как я новичок в OpenMP I не знали об исключении вложенных разделов OpenMP. Спасибо за отличное объяснение! – Bob
Возможно, вы можете взглянуть на это [учебное пособие] (http://www.openmp.org/presentations/miguel/F95_OpenMPv1_v2.pdf) ... –