Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre à l'essai
    Inscrit en
    avril 2007
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 253
    Points : 21
    Points
    21

    Par défaut Différence entre OpenMp et les Threads

    Bonjour à tous,

    J'ai lu pas mal de documents et d'articles concernant OpenMp, mais une question idiote reste sans réponse.

    Quel est la différence entre utiliser OpenMP et utiliser les fonctions natives de threads que nous propose la majorité des langages de programmation de nos jours ?

    OpenMP est une API donc il doit simplifier le fait de déclarer des threads, mais j'ai du mal à saisir "l'avantage" d'utiliser OpenMP.

    Quelqu'un pourrait m'éclairer ?

    Je vous remercie d'avance,

    Bien cordialement,

    Nixeus

  2. #2
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    24 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 24 126
    Points : 35 199
    Points
    35 199

    Par défaut

    L'avantage est justement ça: Tu n'as pas à t'occuper du lancement des threads et de la communication entre eux pour récupérer des valeurs, OpenMP fait ça pour toi (pour une "réduction" par exemple, c'est très utile). En plus, ça s'adapte automatiquement au nombre de threads réglé (ou par défaut, au nombre de processeurs de ta machine)

    Pareil pour les barrières de synchronisation, il suffit d'une ligne de déclaration plutôt que des appels de fonctions élaborés. C'est du sucre syntaxique, mais un excellent sucre.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Inscrit en
    avril 2007
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 253
    Points : 21
    Points
    21

    Par défaut

    Bonjour et un grand merci de ta réponse qui m'aide beaucoup,


    Donc OpenMP permet donc de simplifier la syntaxe et la gestion générale des threads. Nous n'avons par exemple pas besoin de gérer le démarrage et la synchronisation des threads.

    Par ailleurs, qu'entends tu par réduction ? (aurais tu un petit exemple s'il te plait ?)

    Merci beaucoup

  4. #4
    Expert Confirmé Sénior Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    24 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 24 126
    Points : 35 199
    Points
    35 199

    Par défaut

    Une somme de tous les entiers d'un tableau (ou une autre opération de ce type) est appelée une réduction. Je crois que c'est parce qu'on enlève une dimension.

    Pour en faire une multi-thread sous OpenMP, il suffit de faire sa boucle for puis rajouter un #pragma omp reduction avec les bons paramètres, ou un truc du genre (ça fait des années que je n'y ai pas touché).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre à l'essai
    Inscrit en
    avril 2007
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 253
    Points : 21
    Points
    21

    Par défaut

    Merci

    Si tu as d'autres infos ou témoignages, je reste preneur

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •