• [^] # Re: Et pourquoi pas OpenMP ?

    Posté par . En réponse au message Programmation parallèle en POP-C++. Évalué à 2.


    void matvec(double *mat, double *vec1, double *vec2, const int m, const int n) {
    int i,j;
    #pragma omp parallel for default(none) shared(mat,vec1,vec2) private(i,j)
    for (i = 0; i < m; ++i)
    for (j = 0; j < n; ++j)
    vec2[i] += mat[i][j] * vec1[i];
    }


    Bien sûr il s'agit d'un code naïf de multiplication de matrice, mais ça montre quand même l'idée. Faire ça en pthreads est bien plus fastidieux si tu veux bien le faire. Il y a tout un tas de cas où avoir une syntaxe qui gère le parallélisme (directement dans le langage ou les pragmas) permet d'aller quand même bien plus vite que les pthreads.