Soutenez-nous

Quel est le meilleur langage pour la programmation parallèle ?
Partagez vos retours d'expérience

Les rubriques (actu, forums, tutos) de Développez
Réseaux sociaux


 Discussion forum

Sur le même sujet
Le , par dourouc05, Responsable Qt
Petit sondage pour l'ouverture de ce forum : quel langage trouvez-vous le meilleur pour la programmation parallèle/concourante ?

Le but n'est pas d'avoir une suite de réactions disant que tel langage est meilleur, sans plus d'explications : pourquoi tel langage vous semble-t-il le plus approprié pour la programmation parallèle ? Quels sont les éléments qui vous font pencher en sa faveur : les outils disponibles, la syntaxe... ?

Peut-être un paradigme de programmation vous semble plus approprié que les autres : impératif, objet, fonctionnel, logique... ?

Exprimez-vous dans le sondage et précisez votre opinion en répondant à ce message, de manière aussi constructive et détaillée que possible !



 Poster une réponse

Avatar de dourouc05 dourouc05
Responsable Qt
le 26/05/2011 18:49
Citation Envoyé par unBonGars  Voir le message
OpenCL peut il acceder à une base SQL ? Gerer un protocole de flux ? .. je l'ignore, mais il fait de belles transformées de Fourier en 3D environ 50 fois plus vite qu'un core 2 duo à 3ghz , je n'en sais pas plus...

Un GPU peut te faire des calculs très rapidement tant qu'il s'agit de calcul parallèle pur et dur, pas trop d'embranchements notamment.

Accéder à une base de données n'est pas encore possible, il faut transférer les données que tu reçois sur le CPU au bon endroit sur le GPU pour traitement. À noter que certains moteurs de base de données commencent à utiliser les GPU ; à part ces exceptions, ce n'est pas vraiment possible sans trop refaire soi-même...
Avatar de Gouyon Gouyon
Membre chevronné
le 27/05/2011 9:32
Citation Envoyé par dourouc05  Voir le message
Un GPU peut te faire des calculs très rapidement tant qu'il s'agit de calcul parallèle pur et dur, pas trop d'embranchements notamment.

Effectivement chez nous on utilise les GPU pour faire des calculs temps réels sur des images vidéo et c'est impressionnant. Par contre ça ne marche pas pour tout et c'est très délicat à programmer (aux dires de mes collègues)

Pour répondre à la question j'ai commencé la programmation parallèle avec du C++ puis du pascal. Je ne connais pas tous les langages cités mais ce que j'ai constaté c'est que soit on veut quelque chose de très performant et il faut mettre les mains dans le cambouis et oublier la portabilité (sauf sur une machine identique) et bonjour la maintenance du code. Soit on peut se contenter de quelque chose de moins pointu mais qui sera plus facile à programmer. Il existe des utilitaires qui permettent de paralléliser ça peut suffire et l'application est plus facile à maintenir.
Avatar de chaplin chaplin
Membre Expert
le 28/05/2011 12:48
Citation Envoyé par TropMDR  Voir le message
Ouais, j'évalue le "pas assez" à moins de 0,1% justement (dommage que personne n'ait pris le risque de répondre). Et non, je ne pense pas que comprendre le modèle mémoire relaxé du x86 soit un concept fondamental pour pouvoir appréhender la programmation parallèle, justement parce qu'il y a des modèle bien meilleurs que la mémoire partagé (genre le passage de message*). Et heureusement, vu la complexité incroyable de la chose (et le fait que ça change d'un proc à l'autre. Genre un algo qui marche sur x86 échouera lamentablement sur powerPC).

*: C'est l'approche utilisée dans Erlang, qui a motivé son concepteur a créé plus exactement ce langage.
Avatar de sekaijin sekaijin
Expert Confirmé Sénior
le 29/05/2011 13:43
je ne pense pas qu'il y ait de modèle meilleur qu'un autre en soit

je pense qu'un modèle est plus adapté à une situation

si je prends des extrêmes j'ai d'un côté des chose comme le calcul de contour par moyenne pondère
ou si j'ai un cpu par point de mon image que que chacun fait la moyenne pondéré des valeur voisine (immédiates)
le modèle de programmation est particulièrement efficace. tout les cpu (gpu) font le même calcul sur des valeurs locales
à l'opposé j'ai un système multi agent dont le but est de résoudre un pb d'IA complexe par la collaborations. dans ce cas la chaque agent à un algo qui lui est propre et les échanges de messages sont la base du fonctionnement. on est loin du pb de l'image et de ses contours.

pour moi il n'y a pas donc de meilleur mais selon le cas un modèle plus adapté qu'un autre.
je ne vois d'ailleurs rien qui empêche de mixer les approches.

A+JYT
Avatar de alex.buisson alex.buisson
Nouveau Membre du Club
le 31/05/2011 8:52
J'ai mené à bien des projets nécessitant tous les langages cités précédement avec les avantages et inconvéniants que vous avez tous très bien mis en avant. Cependant, comme vous l'avez fait remarqué les programmeurs ayant une "réelle" connaissance et maitrise de leur machine sont rare, et donc l'approche haut niveau et très souvent ce que je recommande aux débutants qui me demande comment accélérer certaines fonctions.

Mais plus qu'une approche par language, je leur demande d'abord de comprendre comment leur calcul peut être formulé de manière concurrent et ensuite le plus souvent via du OpenMP en C++ on introduit le //isme.

Ca permet de valider le modèle rapidement. OpenMP est souvent remplacé pour le code de production car bcp trop sensible à des perturabations extérieurs (var d'environnements, etc...).

En bref, pour bien exploter le //isme, il faut d'abord comprendre les paradigmes sous-jacents.
Avatar de Kait3n Kait3n
Invité de passage
le 15/02/2012 10:38
OpenMB, OpenCL, Haskell, Erlang.

Simplement car ils sont fait pour ça et ça se ressent. Fini l'époque où je faisais ça en C,C++ ou Java, et passait 99% du temps du projet à régler les problèmes de synchronisation. Préférence pour Erlang dans la liste.

D'ailleurs avis perso : le modèle acteur va revenir en force.
Avatar de hunter_fast hunter_fast

le 12/04/2012 21:49
C#
Offres d'emploi IT
Ingénieur Hadoop
CDI
Agilitech - Provence Alpes Côte d'Azur - Sophia-Antipolis
Parue le 08/03/2014
Ingénieur Système Microsoft - H/F
CDI
CetSI - Ile de France - Nanterre (92000)
Parue le 02/04/2014
Développeur .NET H/F
Intérim
CRESCENDO BROTTEAUX - Ile de France - Paris
Parue le 15/04/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula