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 :

connaitre le temps de calcul


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut connaitre le temps de calcul
    Bonjour tout le monde

    J'ai un gros programme en Fortran, il tourne mais est très long.
    Ce programme est divisé en 2 parties, lesquelles bouclées dans une grosse boucle.

    Les 2 parties sont :
    _ Des déclarations de variables et affectations
    _ Une résolution (inversion de matrices, pivot de Gauss, ......)

    Je me demande si mes déclarations ne me bouffent pas un temps de calcul monstrueux.

    Je souhaite donc connaitre le temps de calcul passé à chacune de ces 2 parties. Je me suis dit que connaitre le nombre de cycles machine serait pas mal. Mais je ne sais pas comment afficher le nombre de cycle machine.
    Sinon une horloge? qu'en dites vous?

  2. #2
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    plusieur solution si tu es sous linux ou cygwin, la commande time:
    sinon, la subroutine cputime:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    real(kind=8) :: tdeb,tfin
     
    call CPU_TIME(tdeb)
     
    ...
     
    call CPU_TIME(tfin)
     
    !affiche le nombre de seconde entre tdeb et tfin:
    print*,tfin-tdeb
    il y a aussi la suboutine date_and_time

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Une résolution (inversion de matrices, pivot de Gauss, ......)
    Si tu dois seulement résoudre un système linéaire, calculer l'inverse de la matrice n'est pas une méthode efficace. Si ce site offre des tutoriels, c'est pour qu'on les utilise. Alors, va voir celui que j'ai écrit sous http://jmblanc.developpez.com/algori...mes-lineaires/
    D'autre part, il n'est souvent pas judicieux de réinventer la roue. Je te recommande la bibliothèque LAPACK que tu peux télécharger gratuitement de www.netlib.org. C'est probablement ce qu'on a fait de plus efficace.
    Jean-Marc Blanc

  4. #4
    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 : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Je te conseille de réaliser un profil de ton application pour savoir de manière détaillée où le temps est perdu.

  5. #5
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    j'avais en effet oublié cette solution: le profil complet de l'application te dira qui fait quoi à quel moment pour toute tes fonction tu connaitra alors laquelle de tes fonction te fait perdre du temps ou consomme de la mémoire.....

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 4
    Par défaut Merci à tous
    Super, plein de reponses
    Je pense essayé avec le CPU time.
    Pour ce qui est de ma resolution, j'utilise une bibliothèque IMSL, qui regroupe les éléments de LAPACK, je crois. J'utilise une commande d_lslcg (une décomposition LU quoi).
    Il y a mieux ??

Discussions similaires

  1. temps de calcul sius VC++ !!
    Par Axiome dans le forum MFC
    Réponses: 16
    Dernier message: 13/12/2005, 09h57
  2. Temps de calcul avec deux écrans
    Par Shaga dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/11/2005, 09h24
  3. temps de calculs extremement long !!
    Par salseropom dans le forum C++
    Réponses: 9
    Dernier message: 19/01/2005, 20h12
  4. Stats : connaitre en temps reel les requetes en cours d'exec
    Par jeff37 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 21/12/2004, 17h01
  5. Connaitre le temps d'execution d'un pgm ?
    Par yacinechaouche dans le forum C
    Réponses: 7
    Dernier message: 27/01/2003, 20h57

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