Paralelizar o fortran 2008 `fazer concorrente 'sistematicamente, possivelmente com o openmp
O fortran 2008do concurrent
construct é um loop que informa ao compilador que nenhuma iteração afeta outra. Assim, ele pode ser paralelizado com segurança.
Um exemplo válido:
program main
implicit none
integer :: i
integer, dimension(10) :: array
do concurrent( i= 1: 10)
array(i) = i
end do
end program main
onde as iterações podem ser feitasem qualquer ordem. Você pode ler mais sobre issoAqui.
Pelo que sei, o gfortran não paraleliza automaticamentedo concurrent
loops, enquanto eu me lembro de um e-mail de lista difusão-gfortran sobre fazê-lo (Aqui). Ele acaba de transformá-los em clássicosdo
rotações.
Minha pergunta: Você conhece uma maneira desistematicamente paralelizardo concurrent
rotações? Por exemplo, com umsistemático sintaxe do openmp?