Paralleliser 5 boucles imbriquées avec OpenMP
Bonjour à tous,
Dans un de nos programme nous avons ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
real x(-nfx:nfx,-nfy+1:jma+nfy,-nfz+1:kma+nfz)
real y(1:jma+2,1:kma+2), a(-nfx:nfx,-nfy:nfy,-nfz:nfz)
c
integer i,j,k,i2,j2,k2
c
do k = 1,kma
do j = 1,jma
y(j+1,k+1) = 0.0
c
do k2 = -nfz,nfz
do j2 = -nfy,nfy
do i2 = -nfx,nfx
y(j+1,k+1) = y(j+1,k+1) + x(i2,j+j2,k+k2)*a(i2,j2,k2)
enddo
enddo
enddo
enddo
enddo |
Je voudrais paralléliser cette subroutine avec OpenMP. Je suis malheureusement totalement inculte avec OpenMP. J'ai lu qqs cours et programmer des boucles simples avec OpenMP ne me pose pas de problème. La compilation et l'execution non plus. Mais pour ces 5 boucles imbriquées je suis un peu perdu.
Y aurait il des âmes charitables dans le coin pour m'aider? idées, suggestions?
Merci d'avance,
Bye