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

Affichage des résultats du sondage: Quelle bibliothèque pour la programmation parallèle ?

Votants
30. Vous ne pouvez pas participer à ce sondage.
  • OpenMP

    17 56,67%
  • Intel Threading Building Block

    7 23,33%
  • Intel Array Building Blocks

    1 3,33%
  • Intel Cilk Plus

    0 0%
  • Microsoft PPL

    3 10,00%
  • Microsoft C++ AMP

    3 10,00%
  • Microsoft DirectCompute

    1 3,33%
  • Boost.MPI

    4 13,33%
  • QtConcurrent

    6 20,00%
  • OpenCL

    6 20,00%
  • Nvidia CUDA

    11 36,67%
  • Open AAC

    0 0%
  • ATI Stream

    0 0%
  • Autres (précisez)

    3 10,00%
Sondage à choix multiple
Threads & Processus C++ Discussion :

Quelle bibliothèque pour la programmation parallèle ?


Sujet :

Threads & Processus C++

  1. #1
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut Quelle bibliothèque pour la programmation parallèle ?
    Bonjour,

    Un volet du développement multithread a pour objectif de distribuer les calculs sur plusieurs cœurs d'exécution afin de permettre d'améliorer sensiblement les performances et de pouvoir supporter une montée en charge des données à traiter. Plusieurs bibliothèques existent utilisant différentes approches :
    • SIMD
    • Multicoeur/multiprocesseur
    • GPGPU

    Certaines bibliothèques interviennent sur plusieurs de ces différentes possibilités.

    Laquelle/Lesquelles utilisez-vous ou aimeriez-vous utiliser sur vos projets ? Quels sont leurs avantages ? Leurs inconvénients ? Que manque-t-il ?

    Ce sondage est le pendant de celui ci qui porte sur la programmation concurrente.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 87
    Points : 111
    Points
    111
    Par défaut
    il ne faut pas oublier Thrust

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2011
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2011
    Messages : 75
    Points : 88
    Points
    88
    Par défaut
    En Java j'utilise Ateji PX. C'est pas mal, ca simplifie vachement le parallélisme.

    Juste dommage que faute de moyens ils n'aient pas sorti de version stable pour la programation sur le GPU.

    http://www.ateji.com/

  4. #4
    Membre éprouvé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Septembre 2010
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Septembre 2010
    Messages : 450
    Points : 1 073
    Points
    1 073
    Par défaut
    En C++, j'ai utilisé les QThread du Framework Qt: http://developer.qt.nokia.com/doc/qt-4.8/qthread.html
    En C, j'ai utilisé les threads Poxix: https://computing.llnl.gov/tutorials/pthreads/
    Et les threads de la glib: http://developer.gnome.org/glib/2.28/glib-Threads.html
    Si vous moinsez, merci de répondre pour argumenter!
    Ma présentation

  5. #5
    Membre du Club
    Homme Profil pro
    Chercheur en Sécurité
    Inscrit en
    Octobre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en Sécurité

    Informations forums :
    Inscription : Octobre 2008
    Messages : 32
    Points : 56
    Points
    56
    Par défaut
    en C, j'utilise l'extension Openmp, facile à utiliser et très efficace, tout en restant très proche du séquentiel.
    >possibilité de fixer ou pas le nombre de coeur à utiliser, et de partager le travaille de façon dynamique/statique entre les coeurs rien qu'avec des directives ex: #pragma openmp parallele for.... pour paralléliser une boucle for

    don't patch a bad code, rewrite it

  6. #6
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 117
    Points : 219
    Points
    219
    Par défaut
    Idem pour moi, j'ai utiliser la librairie OpenMP lors d'un projet de traitement d'image en C++.
    Cette libraire grâce à ces pragma super bien foutu et très intuitive m'as permis d'améliorer mes performance de filtres (algo déjà optimisé au maximum) par 10.
    Comme l'as fait souligner tbarry, une petite pragme du genre "#pragma openmp parallele for" juste avant votre for et le tour est (quasiment) joué.

    Mon petit blog sans prétention : http://blog.octera.info/

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    en c les posix thread

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 11
    Points : 14
    Points
    14
    Par défaut
    CUDA et PyCUDA sont très pratiques pour les calculs numériques intenses.

  9. #9
    Membre habitué
    Homme Profil pro
    Dev C++, CUDA
    Inscrit en
    Mai 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Dev C++, CUDA
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 83
    Points : 129
    Points
    129
    Par défaut
    en C avec OpenMPI
    Je suppose que Boost.MPI c'est pour du C++ ?

  10. #10
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    en C++ : au début j'utilisais les threads de l'api win32 puis j'ai testé un peu OpenMP et finalement j'ai jeté mon dévolu sur Boost.Threads qui a le gros avantage d'être portable
    mais ça fait près de 2 ans que je n'ai pas fait de C++

    en C# : TPL et Reactive Framework
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  11. #11
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Moi j'utilise les thread de l'api win32 (à la dure). Je n'ai pas encore testé OpenMP et cie. Mais le prochain développement massivement parallèle que je ferais sera sans doute avec CUDA.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    OpenMP pour son efficacité et surtout sa simplicité.

  13. #13
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tiens, ca pourrait etre interessant de refaire le sondage avec les bibliotheques actuelles.

    Plusieurs points :
    - Boost.MPI est un wrapper pour MPI 1, donc deprecie
    - Idem pour ATI.Stream
    - Je suppose que OpenAAC est en realite OpenACC ?

    Certaines des bibliotheques ne sont que pour les accelerateurs, donc moins pertinentes que les bibliotheques plus generalistes.

    Le gros souci de TBB, c'est le flou assez complet qui regne autour de l'exception a la GPL2 qu'elle contient. Assez insupportable, car autrement, il s'agit d'un tres bonne bibliotheque.

  14. #14
    Membre averti Avatar de RPGamer
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Mars 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2010
    Messages : 168
    Points : 395
    Points
    395
    Par défaut
    Attention, plusieurs concepts qui n'ont rien à voir son mélangés dans ce sondage. La programmation concurrente (multithreading) n'a aucun rapport avec la programmation parallélisée (SIMD par ex). Je dirais même que le choix d'utiliser telle ou telle approche est fait dans des contextes totalement différents.

Discussions similaires

  1. Quelle bibliothèque pour une interface graphique C++
    Par peace_info dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/03/2007, 14h42
  2. Quelle bibliothèque pour gérer des contours actifs ?
    Par khayyam90 dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 06/12/2006, 13h58
  3. [VB6] Quelle bibliothèque pour Keypress??
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 02/06/2006, 12h04
  4. [C#][OpenGL] Quelle bibliothèque pour utiliser OpenGL en C#
    Par glKabuto dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/05/2006, 13h56
  5. Quelle Bibliothèque pour une IA d'un RTS ?
    Par methos69 dans le forum Bibliothèques
    Réponses: 9
    Dernier message: 11/02/2005, 10h28

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