Quelle bibliothèque utilisez-vous pour la programmation parallèle ?
Partagez votre expérience
Le 2011-12-18 20:07:56, par 3DArchi, Rédacteur
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 :
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.
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.
-
RPGamerMembre avertiAttention, 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.le 04/08/2015 à 12:18
-
Lightness1024Membre régulieril ne faut pas oublier Thrustle 18/12/2011 à 21:40
-
bzerathMembre régulierEn 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/le 19/12/2011 à 10:42 -
YannPeniguelMembre éprouvéEn C++, j'ai utilisé les QThread du Framework Qt: http://developer.qt.nokia.com/doc/qt...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...b-Threads.htmlle 19/12/2011 à 11:37 -
tbarryMembre du Cluben 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 itle 19/12/2011 à 16:34 -
OcterAMembre actifIdem 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é.le 19/12/2011 à 17:13 -
vivi168Candidat au Cluben c les posix threadle 21/12/2011 à 0:06
-
RozebudMembre à l'essaiCUDA et PyCUDA sont très pratiques pour les calculs numériques intenses.le 21/12/2011 à 0:16
-
mhtrinhMembre habituéen C avec OpenMPI
Je suppose que Boost.MPI c'est pour du C++ ?le 21/12/2011 à 0:40 -
shenron666Expert confirmé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 Frameworkle 21/12/2011 à 10:55