Précédent   Forum du club des développeurs et IT Pro > Général Développement > Programmation système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/06/2012, 17h10   #1
Nixeus
Futur Membre du Club
 
Inscription : avril 2007
Messages : 245
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 245
Points : 17
Points : 17
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
Nixeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2012, 14h33   #2
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 396
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

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

Informations forums :
Inscription : septembre 2005
Messages : 22 396
Points : 32 049
Points : 32 049
Envoyer un message via MSN à Médinoc
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.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2012, 20h17   #3
Nixeus
Futur Membre du Club
 
Inscription : avril 2007
Messages : 245
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 245
Points : 17
Points : 17
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
Nixeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2012, 21h31   #4
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 396
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

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

Informations forums :
Inscription : septembre 2005
Messages : 22 396
Points : 32 049
Points : 32 049
Envoyer un message via MSN à Médinoc
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.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/06/2012, 21h55   #5
Nixeus
Futur Membre du Club
 
Inscription : avril 2007
Messages : 245
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 245
Points : 17
Points : 17
Merci

Si tu as d'autres infos ou témoignages, je reste preneur
Nixeus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h15.


 
 
 
 
Partenaires

Hébergement Web