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

C++ Discussion :

C++ et le calcul scientifique


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut C++ et le calcul scientifique
    Bonjour,

    Pour moi (et pour la plupart, je pense), le C++ est associé à des applications exigeantes en performances.

    Or, je constate que dans le domaine du calcul scientifique, le C# a tendance à remplacer le C++, le Fortran évoluant peu. Le C++ semble de plus en plus cantonné aux jeux et à l'embarqué. Que pensez-vous de ce mouvement ?

    Par ailleurs, suite à une nouvelle qui vient de tomber, j'ai été jeter un œil par curiosité sur les offres d'emploi de Bull. Résultat : C++ quasi inexistant, et java très présent. Encore une source d'interrogations pour moi...

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    dans le domaine du calcul scientifique, le C# a tendance à remplacer le C++
    Une source ?

    Dans le lien que tu donnes, il est écrit :
    basée sur le système d'exploitation Linux
    donc, déjà, il faut oublié C# dessus. Et il faut oublier aussi le C# pour la majorité des supercalculateurs très très haut de gamme

    C++ quasi inexistant, et java très présent
    Rien de très surprenant je trouve. Ça veut juste dire que pour la plupart des applications, les performances ne sont pas critiques (ou que la partie de l'application qui est critique : 1. est qu'une petite partie de l'application 2. peut être pris en charge par une lib spécialisée)

    A mon avis, la "bullx supercomputer suite" de Bull n'est pas développée en java...

    L'erreur, je pense, est de croire qu'il est mieux de développer la partie non critique en java plutôt qu'en C++ pour des raisons de portabilité/productivité/maintenance/autres

  3. #3
    Responsable Qt & Livres


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

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    donc, déjà, il faut oublié C# dessus.
    Pas du tout. C#, c'est loin d'être réservé aux plateformes Microsoft, c'est simplement un langage créé par Microsoft, dont l'implémentation de référence est faite par Microsoft mais il reste quand même des implémentations non Microsoft : Mono http://www.mono-project.com/Main_Page et DotGNU http://dotgnu.org/ (bon, le dernier, on peut l'oublier...). Certes, niveaux perfs, c'est sûrement pas ce qu'on fait de mieux, mais ça m'étonnerait que ce soit des routines en C# appelées pour le traitement lourd.

    Citation Envoyé par gbdivers Voir le message
    L'erreur, je pense, est de croire qu'il est mieux de développer la partie non critique en java plutôt qu'en C++ pour des raisons de portabilité/productivité/maintenance/autres
    En effet. Tout ce qui est non critique et n'a pas besoin de performances doit être fait d'une manière aussi lisible que possible. C'est aussi pour ça que je dirais de ne pas forcément la faire en Java, mais plutôt dans un langage où l'équipe de dev est à l'aise, où l'on trouve facilement des gens pour reprendre le bousin « au cas où », plutôt que se fixer un langage quelconque.

    C'est aussi comme ça dans certaines parties de l'embarqué (beaucoup de gens seront néanmoins bien mieux placés que moi pour compléter) : on commence ce qu'on doit faire en assembleur en assembleur, puis on passe dès que possible à du C. C'est à peu près impossible de faire un bootloader exclusivement en C (en tout cas, je n'ai jamais entendu parler de méthode pour le faire, ni d'une POC).
    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 !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    Une source ?
    Une SSII qui bosse dans le monde de l'énergie (EDF, Technip...).
    Et les diverses annonces que je peux voir.

    Dans le lien que tu donnes, il est écrit :

    Citation Envoyé par gbdivers Voir le message
    donc, déjà, il faut oublié C# dessus. Et il faut oublier aussi le C# pour la majorité des supercalculateurs très très haut de gamme
    C'est également mon préjugé.
    Mais pourquoi le site de Bull ne contient-il qu'une seule annonce C++ sur des dizaines d'annonces en France ?

    Citation Envoyé par gbdivers Voir le message
    L'erreur, je pense, est de croire qu'il est mieux de développer la partie non critique en java plutôt qu'en C++ pour des raisons de portabilité/productivité/maintenance/autres
    Du coup, je me pose la question : ne m'intéressant guère à l'embarqué, dois-je mettre la pédale douce sur le C++ et m'investir dans Java, en gardant un fond de C++ ?

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Une SSII qui bosse dans le monde de l'énergie (EDF, Technip...)
    Donc pas forcement une vision globale...

    Par exemple, dans mon domaine, on peut voir que la répartition est plus en faveur de C++ (55%) que du Java (15%) et C# (6%) (le reste sont les langages de scripts (R, MathLab, Perl, Python) qui sont bien représenté aussi (19%) et les autres (VB, etc.) 5%)

    Mais pourquoi le site de Bull ne contient-il qu'une seule annonce C++ sur des dizaines d'annonces en France ?
    Parce qu'un développeur C++ vaut 10 développeurs Java ? (prière de ne pas répondre à ce troll trop velu)

    dois-je mettre la pédale douce sur le C++ et m'investir dans Java, en gardant un fond de C++
    Tu fais comme tu préfères
    Il y a aussi beaucoup plus de développeurs Java que C++ donc ça compense. Ce n'est pas difficile de trouver du boulot dans les 2 cas. J'ai un stagiaire qui vient de finir ses études qui n'a eu aucune difficulté à trouver du boulot.

    il reste quand même des implémentations non Microsoft
    J'avais (encore) oublié Mono. D'un autre côté, j'imagine que pour un supercalculateur, ça ne sera pas utilisé

  6. #6
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Bonjour,

    les langages de programmation utilisés dans le calcul scientifique sont essentiellement le Fortran, le C et le C++. Les autres langages (Python, Java, ...) sont en général employés à des fins non calculatoires (interfaces homme-machine, espionnage par scripts, etc).

    C'est bien sûr vrai dans le domaine de l'énergie, y compris à EDF. Il faudrait préciser quelle est la SSII, sur quel projet elle travaille. Il y a quelque chose qui a dû t'échapper. En ce qui concerne BULL, ils s'intéressent beaucoup plus aux architectures parallèles qu'au calcul scientifique proprement dit.

    Au passage, le Fortran est certainement le langage le plus utilisé en calcul scientifique. L'évolution du Fortran n'est pas forcément intéressante dans ce domaine car elle est souvent perçue comme étant accompagnée d'une perte de performance. Encore aujourd'hui, beaucoup de noyaux de calcul sont développés en Fortran 77. D'ailleurs, en référence à ton lien, les codes de calcul pour la fusion magnétique sont justement développés en Fortran au CEA.

    Finalement, je réponds à ta question :
    Or, je constate que dans le domaine du calcul scientifique, le C# a tendance à remplacer le C++, le Fortran évoluant peu. Le C++ semble de plus en plus cantonné aux jeux et à l'embarqué. Que pensez-vous de ce mouvement ?
    Ce mouvement n'est pas en marche et je m'en réjouis!

  7. #7
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Citation Envoyé par oodini Voir le message
    Du coup, je me pose la question : ne m'intéressant guère à l'embarqué, dois-je mettre la pédale douce sur le C++ et m'investir dans Java, en gardant un fond de C++ ?
    S'investir à fond dans du Java? C'est trivial quand tu as un bon (et je parle d'un réel bon niveau) en C++.
    Moi je vois ça comme un double effet, tu t'investis en C++ pour devenir un bon développeur le passage à Java se fera sans soucis.
    Dans l'autre sens.... ouille.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Goten Voir le message
    S'investir à fond dans du Java? C'est trivial quand tu as un bon (et je parle d'un réel bon niveau) en C++.
    J'ai travaillé sur quelques projets de migration C++ vers Java avec des équipes de dev aguerris au C++ (> 10 ans d'expérience) qui n'ont jamais réussi à appréhender l'univers Java.

    Maîtriser le C++ n'implique pas une maîtrise du Java, loin de là.
    Le Java, ce n'est pas seulement une syntaxe, c'est tout un écosystème et de nombreux frameworks (J2EE, JPA, JSP, GWT, Hibernate, Spring, ....).

  9. #9
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Citation Envoyé par Nudger Voir le message
    Bonjour,


    J'ai travaillé sur quelques projets de migration C++ vers Java avec des équipes de dev aguerris au C++ (> 10 ans d'expérience) qui n'ont jamais réussi à appréhender l'univers Java.

    Maîtriser le C++ n'implique pas une maîtrise du Java, loin de là.
    Le Java, ce n'est pas seulement une syntaxe, c'est tout un écosystème et de nombreux frameworks (J2EE, JPA, JSP, GWT, Hibernate, Spring, ....).
    Bon ok j'ai pas été assez clair, Java hors J2EE (là oui c'est vraiment à part entière), c'est quand même trivial le passage C++ vers Java.

    (et j'ai vu des gens avec plus de 10 ans d'expérience qui était pas aguerris en C++ :p)

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/11/2009, 11h12
  2. Technique adéquate pour du calcul scientifique
    Par delire8 dans le forum API graphiques
    Réponses: 3
    Dernier message: 10/12/2008, 15h45
  3. calcul scientifique & compilateur
    Par kw1k dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 12/06/2006, 10h09

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