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 :

Créer et remplir des matrices de grandes tailles


Sujet :

Fortran

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut Créer et remplir des matrices de grandes tailles
    Bonjour à tous,
    Je suis entrain de travailler avec un code fortran 77 qui a besoin de lire un fichier de données et remplir avec une matrice de taille 833192*238.
    Le problème c'est qu'il remplit jusqu'à la colone 182 et après il s'arrête de s'exécuter.

    Je pense que c'est un problème de buffer pourtant je travaille avec une machine très très puissante.

    Merci de me guide. C'est vraiment urgent.

    Bien cordialement

    Haytham

  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
    en imaginant que tu nous ai tout dis...
    je suppose que tu travaille avec des double précision, ce qui te donne:
    833192*238*8 ~= 1.477 Go de données à supposé aussi que tu utilise g77 comme compilateur (et que tu travaille sur un PC, linux j'espère!!)... ce qui est encore en dessous de la limite théorique d'adressage 32bits...
    cependant, j'imagine que ton programme n'utilise pas que ce tableau et donc tu as un risque de dépassement mémoire.
    j'imagine aussi que quand tu dis que cela s'arrête de s'exécuter c'est qu'il te renvoie un 'segmentation fault' si ce n'est pas le cas, retourne vérifié dans ton code que tu n'essaye pas de remplir ton tableau avec des valeurs farfelue...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Par défaut
    Bonjour
    Merci pour ta réponsé.
    En fait moi je travaille sous windows avec un PC 32bits. mon tableau c'est un real. J'utilise aussi g77. Le PC c'est avec 8Go de Ram et c'est 4 processeurs

    J'ai essayé de remplir mon tableau avec que des 1 partout mais ca bloque aussi

    Ce qui est bizarre c'est que pour le tableau de taille 833192*238 ca bloque à la colonne 183 lors de l'exécution. Après j'ai essayé de diminuer la taille du tableau à 833192*209 (ca bloque à la colonne 9) puis 833192*208(ca bloque à la colonne 3) puis 833192*207 et la c'est bizarre ça s'arrete à la compilation et me dit que l'exécutable n'est pas un Win32 valide. J'ai augemnté la taille du tableau à 833192*280 et l'a ça marche mais ça bloque au niveau de la création d'un autre tableau.

    J'ai rien compris de tout ça.

    Merci de me guider svp c'est vraimùent urgent

    Je peux vous passer le code si vous voulez.

    Merci

  4. #4
    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
    alors... dans un premier temps il est dommage d'avoir mis autant de mémoire ram sur un ordi incapable de le géré (32bits -> 4Go (et des poussières) max, car c'est la limite d'adressage mémoire)
    ensuite as-tu essayé avec un autre compilateur gfortran par exemple (comme g77 il y a des versions pour à peu près tout les OS) et si tu as 4 tableaux de ce genre de taille alors, c'est direct obligatoire que ton programme plante! il faudra une version 64bits, (et oublier windows)
    que se passe-t-il exactement quand tu dis 'ça bloque'?

    en général, on évite d'avoir des tableau trop grand: as-tu rééllement besoin de TOUTES ces valeurs en même temps? il y a surement un moyen de réduire cette utilisation mémoire!

    que fait ton programme (en gros)?
    as-tu besoin de lire TOUT ton fichier de donnée d'un coup ou bien peut-on en lire qu'une partie puis une autre....

    au fait, en passant, tu as une machine dont le matériel est puissant, mais pour l'exploiter (niveau calcul), il faut oublié windows32 (c'est comme avoir une ferrarri avec un moteur de 2CV )

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 152
    Par défaut
    Bonjour,

    Il est vrai come le souligne Genter que ton bug est un peu vague: il faudrait donner également le code pour voir de quoi il s'agit ou des spécifications sur ce dernier.

    Cela étant, et sous réserve qu'il ne s'agisse pas d'un dépassement de mémoire, il se peut que le soucis vienne de la lecture de ton fichier: un espacement mal mit/définit dans le fichier ou encore une spécificité dans les lecture mal déclarée, etc.

    Au cas où, regardes le sujet posté par manaliac et la réponse de Sylvain Bergeron sur la lecture du fichier:
    http://www.developpez.net/forums/d92...-2-dimensions/

  6. #6
    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!
    Avant toute chose, il faut se demander si tu as besoin de toute la matrice en mémoire. Ce n'est que rarement le cas.
    Jean-Marc Blanc

Discussions similaires

  1. créer une matrice de grande taille
    Par moooona dans le forum C++
    Réponses: 5
    Dernier message: 10/03/2014, 12h33
  2. Réponses: 1
    Dernier message: 25/02/2012, 15h45
  3. Réponses: 2
    Dernier message: 16/05/2008, 16h25
  4. Racine carrée matrice de grande taille
    Par S4sha dans le forum MATLAB
    Réponses: 14
    Dernier message: 17/10/2006, 18h58
  5. Réponses: 6
    Dernier message: 19/10/2004, 13h46

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