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: Quel est le meilleur langage pour la programmation parallèle ?

Votants
127. Vous ne pouvez pas participer à ce sondage.
  • C

    29 22,83%
  • C++

    45 35,43%
  • Java

    23 18,11%
  • Lisp

    4 3,15%
  • Scala

    14 11,02%
  • F#

    3 2,36%
  • D

    3 2,36%
  • Haskell

    11 8,66%
  • Ruby

    0 0%
  • C#

    21 16,54%
  • Python

    8 6,30%
  • Erlang

    8 6,30%
  • Ada

    2 1,57%
  • MATLAB

    3 2,36%
  • Fortran

    2 1,57%
  • occam

    4 3,15%
  • Autre

    8 6,30%
Sondage à choix multiple
Programmation parallèle, calcul scientifique et de haute performance (HPC) Discussion :

Quel est le meilleur langage pour la programmation parallèle ?


Sujet :

Programmation parallèle, calcul scientifique et de haute performance (HPC)

  1. #21
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par Grimly Voir le message
    Je pense que c'est plus de l'ordre du développeur que du langage.

    Les différents problèmes d’inter-blocages persistent dans presque tous les langages.
    Pas dans des langages comme Erlang ou Lisp, ni en C si on utilise MPI mais pas OpenMP. Les deadlocks sont clairement un problème spécifique à la programmation parallèle avec mémoire partagée.

  2. #22
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    Le problème est au niveau de la question. Ca veut dire quoi, "le meilleur langage" ? Si c'est le langage plus efficace pour la programmation parallèle, ce n'est clairement pas le C, où on est obligé de comprendre ce qui se passe jusqu'au niveau le plus bas avant de pouvoir faire quoi que ce soit...
    C'est le meilleur d'un point de vue très personnel : pour toi, le C n'est clairement pas un bon langage pour faire de la programmation parallèle pour certaines raisons, tu as donc un langage qui te semble plus approprié, ce sera celui-là le meilleur de ton point de vue.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #23
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    S'interroger sur quel est le meilleur langage de programmation parallèle, c'est comme s'interroger sur quel est le meilleur langage de programmation tout court : ça n'a aucun sens.

    Il y a des cas d'utilisations, et des langages appropriés à ces cas, la programmation parallèle ne change rien à ça.
    Pour un projet où les performances sont critiques ( calcul scientifique ), C++ couplé à OpenMP et MPI fait des miracles.
    Pour un projet de haut niveau multi-threadé ou avec un système de com inter-process évolué, Scala ou Erlang n'ont rien à envier aux autres.

    Ceci dit, voir un sondage de ce type ne proposant pas Erlang qui est une reference dans le domaine, me choque pas mal .
    It's not a bug, it's a feature

  4. #24
    Membre éclairé Avatar de Camille_B
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2006
    Messages : 212
    Points : 673
    Points
    673
    Par défaut
    Les réponses données sont bonnes

    Il me semble que C est un langage indémodable car il a su trouver la bonne distance entre haut-niveau et bas-niveau pour être utilisable dans tous les cas sans sombrer dans l'extrême complexité (ne serait-ce que lorsque l'on vise plusieurs plateformes) des assembleurs.

    Cela dit l'usage de langages de plus haut niveau dans ce domaine peut-être heureux. Clojure se dépatouille bien non ?

    Le mélange C + langage de plus haut niveau étant une solution, une fois maîtrisée, souvent heureuse.

  5. #25
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par Firwen Voir le message
    S'interroger sur quel est le meilleur langage de programmation parallèle, c'est comme s'interroger sur quel est le meilleur langage de programmation tout court : ça n'a aucun sens.
    C'est pour ça qu'il y a un grand espace libre d'expression en-dessous, pour spécifier pourquoi ce choix, dans quels cas il vaut mieux aller dans telle ou telle direction .

    Citation Envoyé par Firwen Voir le message
    Ceci dit, voir un sondage de ce type ne proposant pas Erlang qui est une reference dans le domaine, me choque pas mal .
    C'est corrigé, il est apparu dans la liste des langages proposés !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #26
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Citation Envoyé par dourouc05
    C'est corrigé, il est apparu dans la liste des langages proposés !
    Merci Master Qt
    It's not a bug, it's a feature

  7. #27
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par Firwen Voir le message
    Merci Master Qt
    N'hésite pas non plus à proposer d'autres ajouts de langages, je ne suis pas du tout expert dans le domaine, il est bien possible que je sois passé à côté de beaucoup d'autres langages très utilisés.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #28
    Membre expérimenté
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Freelance iOS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Points : 1 511
    Points
    1 511
    Par défaut
    C / Objective-C avec Grand Central Dispatch ( libdispatch, Open Source ), c'est le pied. C'est efficace et simple à aborder.

    Sinon, toujours en C, j'ai testé OpenCL : c'est plus complexe à aborder, mais aussi très efficace.

    En technologie plus ancienne, les threads POSIX sont un peu casse-têtes, mais relativement efficaces.
    "Il est plus facile de décomposer un problème en ses éléments, forcément plus simples, que de le traiter en sa totalité." (R. Descartes)

    Freelance iOS

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 25
    Points : 23
    Points
    23
    Par défaut
    Qu'est-ce qu'il en est d'ADA?

    J'ai jamais utilisé ce langage, mais j'ai entendu qu'il est très utilisé dans tout ce qui est temp réel/embarquée/parallèle etc...

    A moins que je me trompe sur le dernier point?

  10. #30
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par Kajan Voir le message
    Qu'est-ce qu'il en est d'ADA?
    Ajouté à la liste, en même temps que MATLAB (pour sa toolbox http://www.mathworks.com/products/parallel-computing/, qui permet de faire passer un for à sa version parallèle en remplaçant le for par parfor, tout simplement : difficile de faire plus simple que ça !) !

    Pour Ada, il semblerait qu'il y soit adapté, au moins depuis la version 95 (maintenant, est-il utilisé pour ça ? fait-on mieux depuis lors ?) :

    Citation Envoyé par http://www.dwheeler.com/lovelace/s1s1.htm
    Also, Ada's parallel constructs can take advantage of today's more advanced operating systems (such as Microsoft's Windows NT and Linux).
    (Premier résultat Google sur ada parallel).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  11. #31
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Tres peu utilise aujourd'hui, mais qui a ete largement utilise par le passe : le fortran.

    Il existe d'ailleurs des paralleliseurs de code en fortran, mais ceux-ci sont surtout utilises par les physiciens.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 32
    Points : 41
    Points
    41
    Par défaut
    Qu'est-ce qu'il en est d'ADA?

    J'ai jamais utilisé ce langage, mais j'ai entendu qu'il est très utilisé dans tout ce qui est temp réel/embarquée/parallèle etc...
    L'Ada est en fait le seul langage certifié pour faire du code critique embarqué pour l'avionique et l'aérospatial.


    Sinon pour en revenir au sujet. De mon point de vue, il faut quand même bien dissocier les différentes utilisations du parallélisme et les besoins.
    Par exemple, pour tout ce qui est calcul parallèle hautes performances, je trouve C/C++/Fortran plutot adaptés car ils permettent un contrôle assez fin du code.
    Mais il ne faut pas oublier Cuda et OpenCL (via C ou C++) pour tout ce qui est calcul/algo sur GPU.

  13. #33
    Membre émérite
    Inscrit en
    Janvier 2011
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Janvier 2011
    Messages : 805
    Points : 2 918
    Points
    2 918
    Par défaut
    J'aurais tendance à dire un langage purement fonctionnel, étant donné que l'aspect thread-safe et l'absence d'effets de bord favorise la parallélisation.

  14. #34
    Membre éprouvé
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Points : 957
    Points
    957
    Par défaut
    Votre sondage oublie un langage extrêmement important (et pionnier)... OCCAM
    il a été spécialement conçu pour la programmation parallèle sur Transputer et met en oeuvre directement les concepts de programmation CSP

    http://en.wikipedia.org/wiki/Occam_(...ming_language)
    http://www.pocketmt.com GLCD Font Creator home site.

  15. #35
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par octal Voir le message
    Votre sondage oublie un langage extrêmement important (et pionnier)... OCCAM
    il a été spécialement conçu pour la programmation parallèle sur Transputer et met en oeuvre directement les concepts de programmation CSP
    Ajouté !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  16. #36
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    Mais je n'ai peut être pas une vision globale de la problématique. Ca serait intéressant d'avoir l'avis de JoelF (c'est son domaine de recherche ; et il a peut être testé aussi la programmation parallèle avec les langages fonctionnelles)
    Alors:

    - connaitre par coeur son ISA/DIE ne sert pas beaucoup mais savori qu'est-ce qu'un cache, qu'on a ou pas de ISA SIMD sur son proc, connaitre le sproblematiques de false sharing, etc est plus qu'utile. Je ne compte plus les projets de recherches ou des missions "experts" ou j'ai empoché 10k pour inverser 3 boucles, rendre le cache content et obtenir x50

    - C/C++ sont vraiment dans le meme bateau. Les gens qui pensent que C++ est lent sont des gens qui ne savent pas programmer en C++ ou, du moins, restent coller sur c'est que j'appel du JAVA++ plein de virtual et de new.

    - Quelque soit le langage, les algos, les algos , les algos. On parallelisent rarement du O(N^4), on cherche le O(N^?) avec ? < 4 PUIS on parallelise.

    Pour repondre au problematique des langages fonctionnels, Haskel est pas degeu, tout comme les variantes compilables de ML. Ca reste rude car peu de gens n'ont l'habitude de reflechir dans ce paradigme.

  17. #37
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 432
    Points : 593
    Points
    593
    Par défaut
    J'ai voté C et C++ pour le GPGPU et l'utilisation d'instruction particuliére, comme les SIMD. Et Haskell et Erland pour le reste (multithreading au dessus de l'os & co)

  18. #38
    Membre régulier
    Homme Profil pro
    Collégien
    Inscrit en
    Mars 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mars 2003
    Messages : 192
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Tres peu utilise aujourd'hui, mais qui a ete largement utilise par le passe : le fortran.

    Il existe d'ailleurs des paralleliseurs de code en fortran, mais ceux-ci sont surtout utilises par les physiciens.

    En effet... la grande majorité des codes de simulation numérique en physique sont écris en fortran, et les codes parallèles c'est pareil.

    Le second langage le plus utilisé dans ces programmes scientifiques parallèles est le C... et en troisième le C++ je dirais.
    --
    Heimdall

  19. #39
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Bon, mon avis est un peu biaisé, mais je dirais C#, depuis la 4.0, avec la Task Parallel Library qui permet de faire des choses vraiment propres...
    Et C# 5.0 intègrera directement dans le langage la gestion des traitements asynchrones, ce qui permettra de faire du parallélisme beaucoup plus facilement (cette fonctionnalité est actuellement en CTP). Voir cet article pour plus de détails

  20. #40
    Membre chevronné
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Points : 1 921
    Points
    1 921
    Par défaut
    concurrence != parallelisme

Discussions similaires

  1. Quel est le meilleur langage pour débuter la programmation ?
    Par Amine Horseman dans le forum Débats sur le développement - Le Best Of
    Réponses: 271
    Dernier message: 26/07/2016, 08h36
  2. Quel est le meilleur langage pour la programmation parallèle en 2015 ?
    Par dourouc05 dans le forum Programmation parallèle, calcul scientifique et de haute performance (HPC)
    Réponses: 7
    Dernier message: 15/05/2015, 12h34
  3. Quel est le meilleur langage pour débuter la programmation ?
    Par Amine Horseman dans le forum Actualités
    Réponses: 144
    Dernier message: 28/11/2014, 17h06
  4. Quel est le meilleur langage pour la portabilité : Windows & Linux (voire Mac) ?
    Par iubito dans le forum Débats sur le développement - Le Best Of
    Réponses: 57
    Dernier message: 26/11/2007, 23h45
  5. Réponses: 4
    Dernier message: 12/05/2007, 00h55

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