Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation système Discussion :

probleme OpenMP multi-threading


Sujet :

Programmation système

  1. #1
    Futur Membre du Club
    probleme OpenMP multi-threading
    bonjour,

    j'ai du mal à comprendre ce bout de code :

    #pragma omp parallel private(i)
    {
    for(i=0; i<A.NB; i++){ //...code}}
    je voudrais comprendre à sert de declencher le multitheading avant la boucle (je pensais qu'on devrait le faire au debut de la boucle for plutot) ,car là chaque thread exécuterait une boucle for == donc la boucle for sera executé : Nombre de thread fois .en plus je vois pas l'utilité de private(i) .

    merci pour toute reponse instructive .

  2. #2
    Membre à l'essai
    Bonjour, tu as raison ici la boucle for sera exécutée autant de fois qu'il y a de threads. C'est possible, j'ai déjà fais ça pour paralléliser une grosse section de code, qui elle-même contenait des boucles, etc ... Par contre si c'est seulement pour une bloucle for je doute que ce soit la meilleure solution.

    Que vaut A.NB ? Il varie peut-être suivant le nombre de threads ?

    Sinon pour le private(i), i semble être déclaré en dehors de la section parallèle, donc en le déclarant private chaque thread aura sa propre variable i. Dans le cas contraire i aurait été modifié par tous les threads en même temps ...