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

Fortran Discussion :

profilage pour améliorer


Sujet :

Fortran

  1. #1
    Membre habitué
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Points : 180
    Points
    180
    Par défaut profilage pour améliorer
    Bonjour, bonsoir le forum,
    ce post fait suite à ces autres : http://www.developpez.net/forums/d13...n-c-voire-cpp/ et http://forum.ubuntu-fr.org/viewtopic.php?id=1310981, où je demandais quel langage de programmation choisir entre le fortran et le C voire le C++. J'ai finalement choisi de coder en fortran, parce que c'est le langage que je connais le mieux, et que j'envisage par la suite que la plupart du travail soit effectuée en parallèle sur plusieurs processeurs. (il y a des serveurs de calcul qui tournent déjà sur quarante proc's dans ma boite, pour d'autres applications)
    Le travail en question est la traduction d'un fichier d'entrée d'environ deux millions de lignes, en une suite de valeurs numériques déterminées d'après les informations de chaque ligne, et avec d'autres infos que l'on récupère dans deux autres fichiers d'entrée de quelques centaines de lignes chacun; on m'a informé sur ce forum ou sur celui de linux-ubuntu où j'ai exposé le problème aussi, que le travail en question s'apparentait à un "jointure" de bases de données.

    La première fois où le programme a tourné correctement jusqu'au bout, il a mis environ vingt minutes; suite aux discussions sur les forums, j'en suis arrivé à deux minutes environ (en améliorant sensiblement la logique de l'algo et les I/O), et aujourd'hui vendredi, en passant d'une vieille HP9000 à bout de souffle, à un bon PC sous linux avec un (seul) processeur itanium, j'en suis à 21 secondes.

    Avant cela, je voudrais, comme cela m'a été conseillé dans un post, profiler la tâche; maintenant qu'elle tourne bien, ça me permettrait de gagner encore ce qui peut l'être. Cependant le programme est assez peu découpé, et ne présente qu'un seul programme principal de six cents lignes environ; cela n'empêcherait-il pas le profilage d'être efficace ?

    Merci de me donner toutes les idées, même farfelues, que vous inspire ce post', car n'étant pas informaticien mais mécanicien (en calcul de structures), mon imagination et mes connaissances sont assez pauvres dans ces domaines,
    merci encore,
    P.S. Dis Toto, pourquoi l'univers existe-t'il ?
    Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se causer avant.

  2. #2
    Membre régulier Avatar de moomba
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Points : 104
    Points
    104
    Par défaut
    As tu regardé ici :
    http://www.developpez.net/forums/d13...tre-que-gprof/

    Il y a plein d'infos qui pourraient t'être utile.
    "Celui qui à le pouvoir de faire le mal, mais qui ne le fait pas, celui là est le prince de l'univers." (shakespeare)

  3. #3
    Membre habitué
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Points : 180
    Points
    180
    Par défaut
    merci; je n'ai que survolé mais ça me paraît intéressant.
    P.S. Dis Toto, pourquoi l'univers existe-t'il ?
    Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se causer avant.

  4. #4
    Membre régulier Avatar de moomba
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 134
    Points : 104
    Points
    104
    Par défaut
    Après, si tu veut de la perf (notamment en mécanique des structures), il faut paralléliser, et tirer partie au maximum des instructions vectorielles.

    Je vient du même monde que toi (physique), et j'y suis passé il y a quelques années. C'est un choix que l'on ne regrette pas

    Tout vas dépendre ensuite de ton maillage, la difficulté sera là.
    "Celui qui à le pouvoir de faire le mal, mais qui ne le fait pas, celui là est le prince de l'univers." (shakespeare)

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Première étape, optimiser la performance sérielle (ce que tu as déjà bien fait) puis la parallèle.
    Pour le premier point, il te faut mesurer la bande passante mémoire utilisée, ainsi que les opérations de calcul effectuées et faire tendre ces deux valeurs vers leur maximum théorique. Ca passe par de la vectorisation, des vérifications sur la bonne utilisation des valeurs en cache...
    Tu as des outils tels que perfexpert qui peuvent t'aider.

Discussions similaires

  1. [RegEx] Besoin d'aide pour améliorer le résultat
    Par teen6517 dans le forum Langage
    Réponses: 5
    Dernier message: 16/03/2007, 08h43
  2. Optimisation de jsp pour améliorer les performances
    Par djuddju dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 01/12/2006, 05h50
  3. Réponses: 10
    Dernier message: 10/11/2005, 16h04
  4. Besoin d'aide pour amélioration de regxp
    Par shinux2004 dans le forum Langage
    Réponses: 10
    Dernier message: 03/09/2005, 16h16
  5. Demande pour améliorer XMLGram Explorer
    Par mchicoix dans le forum XMLRAD
    Réponses: 4
    Dernier message: 29/03/2005, 09h26

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