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 :

[Optimisation] Choix du compilateur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Par défaut [Optimisation] Choix du compilateur
    Bonjour,

    Je travaille actuellement sur un projet de physique numérique assez important. Le codage arrivant à sa fin, la périodes des tests et optimisations arrive. C'est ce dernier point qui m'intéresse.

    J'ai vu à plusieurs endroits sur le web que le compilateur Intel était meilleur sur les plateformes utilisant ce type de processeurs (Ce qui est mon cas).

    - Est-ce que cela veut dire qu'il optimisera mieux le code au niveau rapidité d'exécution que si je le compile avec GCC ?

    - Si oui, dans quelle proportion ?

    Merci d'avance !

  2. #2
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 135
    Par défaut mon ami google
    http://www.google.com/search?q=gcc+v...ient=firefox-a

    apparemment c'est pas des différence énorme, bien sur la plus par des testes son fait sous linux, et en physique ce serra probablement equoitions sur equoitions, et alors la????

    mois perso quand j'ai un algorithme long et pas trop chian, je me le tape en asm

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Essayer de profiler votre code avec gprof par exemple histoire de voir la où vous passez le plus de temps.
    Puis si vous pensez que çà en vaudra la peine, essayer de voir s'il n'est pas possible de faire la même chose, plus vite.
    En dernier ressort, incriminez le compilo.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Tout à fait d'accord, il faut profiler le code avant de chercher la petite bête avec le compilateur.

    Concernant le comparatif icc/gcc il peut partir en troll attention. Pour avoir personnellement testé les deux, je peux dire d'une part que le compilateur intel compile plus vite (c'est pas négligeable sur des gros projets), et qu'ensuite, le code généré était dans bien des cas plus rapide. Néanmoins, il n'est pas toujours possible de l'avoir sur sa plate-forme de manière gratuite, et nos tests n'ont pas été très étendus, alors pas de conclusion hâtive. Mais ne serait-ce que pour le temps de compilation, j'aurai tendance à le préférer à gcc.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Je dirais qu'a cette étape du projet vous commencez a avoir un code qu'on peut commencer à secouer un peu. Un outil comme gprof va vous donner des pistes pour prioriser les routines à améliorer.

    Les gains potentiels en retouchant l'algorithmique peuvent être assez importants surtout si vous êtes passés à côté de certaines aspects de la dynamique de votre programme: pas possible de le vérifier autrement.

    Si ce n'est pas le cas, ou si les seules améliorations de ce côté sont des chantiers longs (et donc risqués et coûteux), il sera sans doute plus rapide d'augmenter la capacité de traitement, d'acheter un compilo plus performant.

    Mais si vous passez votre temps a attendre les retours d'IO (je caricature), çà ne servira à rien... C'est d'abord pour avoir ce type d'infos que le profiling est intéressant.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    En dernier ressort, incriminez le compilo.
    Bof, le tout est de faire un bilan coût/gain/risque. Si le code est propre, le coût d'un changement de compilateur est à peu près nul (pour une entreprise, bien entendu), et donc même si le gain est faible, je ne vois pas pourquoi s'en priver.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    743
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 743
    Par défaut
    J'utilise le compilateur Intel sous Windows (ICL) depuis pas mal d'années (depuis la version 4). A l'origine je voulais surtout avoir un compilo qui puisse compiler toutes les subtilités des templates, parce que VC6 ou VC7 étaient très loin du compte.

    Sur du code C pur, je ne pense pas que ICL fasse vraiment beaucoup mieux que Visual ou GCC. Par contre sur du code C++ générique et des intrinsics SIMD, ICL laisse GCC et Visual sur place... Il n'est pas rare que le code d'Intel soit 2x plus rapide dans les cas les plus complexes.

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Bof, le tout est de faire un bilan coût/gain/risque. Si le code est propre, le coût d'un changement de compilateur est à peu près nul (pour une entreprise, bien entendu), et donc même si le gain est faible, je ne vois pas pourquoi s'en priver.
    Effectivement "si le code est propre"....
    Pour l'instant, il n'est même pas encore sec alors pour ce qui est de propre, il va falloir encore bosser un peu pour savoir.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre confirmé

    Inscrit en
    Juin 2008
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 49
    Par défaut
    Merci pour vos réponses.

    Nous sommes justement dans la phase "gprof". La question serait quand même de savoir si le profilage donne le même résultat selon le compilateur. Je pense que oui, mais c'est à confirmer.

    Le code contient effectivement une grande part de calculs bruts et très peu de "C++", c'est quasiment un copié-collé de code Fortran au niveau des opérations réalisées.

Discussions similaires

  1. Choix de compilateur
    Par usto2005 dans le forum Fortran
    Réponses: 3
    Dernier message: 16/01/2013, 15h26
  2. optimisation par le compilateur
    Par denispir dans le forum Débuter
    Réponses: 5
    Dernier message: 05/04/2012, 16h44
  3. Optimisation choix container/algorithme
    Par Olistan dans le forum SL & STL
    Réponses: 9
    Dernier message: 19/03/2008, 13h39
  4. Choix du compilateur
    Par Amybond dans le forum Choisir un environnement de développement
    Réponses: 3
    Dernier message: 28/02/2007, 21h56
  5. Optimisation -> choix des services à activer
    Par infotron dans le forum Mandriva / Mageia
    Réponses: 20
    Dernier message: 25/05/2004, 12h57

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