Salut,
super rretour! Pas plus tard qu'hier je me décidais à écrire la version OpenMP d'un matrix mutliply en pythran, que je vous livre ci-dessous:
#pythran export matrix_multiply(float list list, float list list)defzero(n,m):return[[0forrowinxrange(n)]forcolinxrange(m)]defmatrix_multiply(m0,m1):new_matrix=zero(len(m0),len(m1[0]))"omp parallel for private(i,j,k)"foriinxrange(len(m0)):forjinxrange(len(m1[0])):forkinxrange(len(m1)):new_matrix[i][j]+=m0[i][k]*m1[k][j]returnnew_matrix
Pythran ne fait pas de privatisation de variable, elles sont toutes déclarées à l'entrée de la fonction (comme en FORTRAN :p), donc mettre le mode defauls(none) me semble tout particulièrement indiqué !
[^] # Re: OpenMP et la fausse simplicité...
Posté par serge_sans_paille (site web personnel) . En réponse au journal Pyth(on|ran) + OpenMP ?. Évalué à 2.
Salut,
super rretour! Pas plus tard qu'hier je me décidais à écrire la version OpenMP d'un matrix mutliply en pythran, que je vous livre ci-dessous:
Pythran ne fait pas de privatisation de variable, elles sont toutes déclarées à l'entrée de la fonction (comme en FORTRAN :p), donc mettre le mode defauls(none) me semble tout particulièrement indiqué !
1000 fois merci :-)