IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Différence entre OpenMp et les Threads


Sujet :

Programmation système

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Points : 47
    Points
    47
    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 éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    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 du Club
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Points : 47
    Points
    47
    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 éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    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 du Club
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Points : 47
    Points
    47
    Par défaut
    Merci

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

Discussions similaires

  1. Différences entre Pentaho et les logiciels commerciaux
    Par dehasmae dans le forum Pentaho
    Réponses: 1
    Dernier message: 19/07/2010, 18h06
  2. [Thread] différence entre les méthodes start/run
    Par maetalkrio dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/10/2009, 18h06
  3. Réponses: 67
    Dernier message: 16/12/2007, 14h41
  4. différence entre paradoxe et les autres
    Par sofianoo dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/03/2007, 16h31
  5. Réponses: 3
    Dernier message: 07/05/2002, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo