|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 245 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() |
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. |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 245 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() |
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. |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : avril 2007 Messages : 245 ![]() |
Merci
Si tu as d'autres infos ou témoignages, je reste preneur |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com