Распараллеливание Fortran 2008 'делать параллельно' систематически, возможно с openmp

Фортран 2008do concurrent Конструкция - это цикл do, который сообщает компилятору, что никакие итерации не влияют ни на одну другую. Таким образом, его можно безопасно распараллелить.

Действительный пример:

program main
  implicit none
  integer :: i
  integer, dimension(10) :: array
  do concurrent( i= 1: 10)
    array(i) = i
  end do
end program main

где итерации могут быть сделаныin any order, Вы можете прочитать больше об этомВот.

Насколько мне известно, gfortran автоматически не распараллеливает этиdo concurrent циклы, пока я помню письмо gfortran-diffusion-list об этом (Вот). Это превращает их в классическиеdo петли.

My question: Знаете ли вы способsystematically распараллеливаниеdo concurrent петли? Например, сsystematic синтаксис openmp?

Ответы на вопрос(2)

Ваш ответ на вопрос