• [^] # Re: OpenMP et la fausse simplicité...

    Posté par (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 export matrix_multiply(float list list, float list list)
    def zero(n,m): return [[0 for row in xrange(n)] for col in xrange(m)]
    def matrix_multiply(m0, m1):
     new_matrix = zero(len(m0),len(m1[0]))
     "omp parallel for private(i,j,k)"
     for i in xrange(len(m0)):
     for j in xrange(len(m1[0])):
     for k in xrange(len(m1)):
     new_matrix[i][j] += m0[i][k]*m1[k][j]
     return new_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é !

    1000 fois merci :-)

    [print(x) for x in ["merci"]*1000]