Bonjour à tous,
Dans un de nos programme nous avons ceci:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Y aurait il des âmes charitables dans le coin pour m'aider? idées, suggestions?
Merci d'avance,
Bye
Partager